payment_completed_by parameter is set to merchant.payment_completed_byparameter is not provided, the system automatically treats the value as app and proceeds accordingly.| mdStatus | Error Detail | Description |
|---|---|---|
| 0 | Authentication Failed | 3D verification failed. |
| 1 | Full Authentication | Cardholder successfully verified. |
The parameters and their order to be used for the hash algorithmare as follows.merchant_key invoice_id order_id status app_secret
#!/usr/bin/env bash
generate_hash_key() {
local merchant_key="$1"
local invoice_id="$2"
local order_id="$3"
local status="$4"
local app_secret="$5"
local data="${merchant_key}|${invoice_id}|${order_id}|${status}"
local iv
iv=$(openssl rand -hex 16 | openssl sha1 | awk '{print $2}' | cut -c1-16)
local password
password=$(printf "%s" "$app_secret" | openssl sha1 | awk '{print $2}')
local salt
salt=$(openssl rand -hex 16 | openssl sha1 | awk '{print $2}' | cut -c1-4)
local salt_with_password
salt_with_password=$(printf "%s" "${password}${salt}" | openssl sha256 | awk '{print $2}' | cut -c1-32)
local key_hex
key_hex=$(printf "%s" "$salt_with_password" | xxd -p -c 256)
local iv_hex
iv_hex=$(printf "%s" "$iv" | xxd -p -c 256)
local encrypted_base64
encrypted_base64=$(printf "%s" "$data" | openssl enc -aes-256-cbc -K "$key_hex" -iv "$iv_hex" -base64)
local msg="${iv}:${salt}:${encrypted_base64}"
msg="${msg//\//__}"
echo "$msg"
}
merchant_key="test_merchant_123"
invoice_id="INV-2026-0001"
order_id="VP12581354698765"
status="complete"
app_secret="my_secret_key_456"
result=$(generate_hash_key "$merchant_key" "$invoice_id" "$order_id" "$status" "$app_secret")
echo "Hash Key: $result"{
"status_code": 100,
"status_description": "Payment Successfully Completed",
"data": {
"sipay_status": 1,
"order_no": "VP17349634893866298",
"order_id": "VP17349634893866298",
"invoice_id": "JB7HHTAGWWINPRT-1734963488",
"status_code": 100,
"status_description": "Payment Successfully Completed",
"sipay_payment_method": 1,
"credit_card_no": "540667****5403",
"transaction_type": "Auth",
"payment_status": 1,
"payment_method": 1,
"error_code": 100,
"error": "Payment Successfully Completed",
"auth_code": "P09424",
"installment": 1,
"amount": 800,
"payment_reason_code": "",
"payment_reason_code_detail": "",
"status": "Completed",
"hash_key": "4e431932f5e8b292:e470:eLjTMboO95+mvF54m4knqa6eD2nc__TnuVeHaxniabeIw9Wgo5qSRVrDdlKw2Y2mpgvT9jRnz30__yJ3d__SsqIP2eJeP3PjHQ+wdRd09Ej838=",
"original_bank_error_code": "",
"original_bank_error_description": ""
}
}