Secure Payments, all required parameters must be provided.transaction_type parameter must be set to PreAuth.payment_completed_by is available to specify who is expected to complete the payment. This parameter can be sent with the following values.app, the following actions are executed automatically. There is no need send any API Endpoints.merchant, the following actions must be completed manually.payment_completed_byparameter is not provided, the system automatically treats the value as app and proceeds accordingly.payment_completed_by sending "Merchant"Pre-Authorization Pending and then the Complete Payment endpoint must be called to initiate the pre-authorization process.Pre-Authorization.generate_hash_key() {
local total="$1"
local installment="$2"
local currency_code="$3"
local merchant_key="$4"
local invoice_id="$5"
local app_secret="$6"
local data="${total}|${installment}|${currency_code}|${merchant_key}|${invoice_id}"
local rand1
rand1=$(openssl rand -hex 16)
local iv
iv=$(printf "%s" "$rand1" | openssl sha1 | awk '{print $2}' | cut -c1-16)
local password
password=$(printf "%s" "$app_secret" | openssl sha1 | awk '{print $2}')
local rand2
rand2=$(openssl rand -hex 16)
local salt
salt=$(printf "%s" "$rand2" | 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_encrypted_bundle="${iv}:${salt}:${encrypted_base64}"
msg_encrypted_bundle="${msg_encrypted_bundle//\//__}"
echo "$msg_encrypted_bundle"
}
total="100"
installment="1"
currency_code="TRY"
merchant_key="merchant_key"
invoice_id="invoice_id"
app_secret="app_secret"
result=$(generate_hash_key "$total" "$installment" "$currency_code" "$merchant_key" "$invoice_id" "$app_secret")
echo "$result"{
"sipay_status": "1",
"order_no": "VP1776849645922312",
"order_id": "VP1776849645922312",
"invoice_id": "XV7YO2ADFXZANAF-1776849645",
"status_code": "100",
"status_description": "Payment Successfully Completed",
"sipay_payment_method": "1",
"credit_card_no": "554960****6017",
"transaction_type": "Pre-Authorization",
"payment_status": "1",
"payment_method": "1",
"error_code": "100",
"error": "Payment Successfully Completed",
"auth_code": "1234456",
"merchant_commission": "0.02",
"user_commission": "0",
"merchant_commission_percentage": "1",
"merchant_commission_fixed": "0",
"installment": "1",
"amount": "2",
"payment_reason_code": null,
"payment_reason_code_detail": null,
"hash_key": "a1111f9ee22ee8db:b8eb:BoR1Nc3eYPpi9oa7r2KkUxOKeBdq3QA4pLiwAMQphd__W5t+PaLSKn1FJ+hAgakz4v5koPQkSDKFKFJFJD3404857fnGWG9WV3L3sOIw==",
"md_status": "1",
"original_bank_error_code": null,
"original_bank_error_description": null,
"host_reference_id": null
}