transaction_type parametresi PreAuth olarak gönderilmelidir.payment_completed_by isimli bir parametre kullanılabilir. Bu parametre aşağıdaki değerler ile gönderilebilir.app olarak gönderildiğinde, aşağıdaki işlemler sistem tarafından otomatik olarak gerçekleştirilir. Herhangi bir API endpoint çağrısı yapılmasına gerek yoktur.merchant olarak gönderildiğinde, aşağıdaki i şlemlerin manuel olarak tamamlanması gerekir.payment_completed_by parametresi gönderilmezse, sistem değeri otomatik olarak app olarak kabul eder ve işlemi buna göre devam ettirir.payment_completed_by Değeri "Merchant" Olarak GönderildiğindePre-Authorization Pending olur. Ardından ön provizyon sürecini başlatmak için Ödeme Tamamlama endpoint'i çağrılmalıdır.md_status = 1 olur.Pre-Authorization olarak güncellenir.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,
"authorization_expires_at": "2026-05-15T10:00:00Z",
"authorization_duration_days": 30
}