card_token oluşturur ve döner.payByCardToken API üzerinden kullanılır ve hassas kart bilgilerinin tekrar gönderilmesi gerekliliğini ortadan kaldırır. Bu servis, ödeme süreçlerini daha hızlı ve verimli hale getirir, tekrarlayan işlemlerde kullanıcı deneyimini iyileştirir ve hassas kart bilgilerinin güvenli ve uyumlu standartlara uygun şekilde işlenmesini sağlar.hash algorithmiçerisinde kullanılacak parametreler ve sıralaması aşağıdaki gibidir.merchant_key customer_number card_holder_name expiry_month expiry_year app_secret
generate_save_card_create_hash_key() {
local merchant_key="$1"
local customer_number="$2"
local card_holder_name="$3"
local card_number="$4"
local expiry_month="$5"
local expiry_year="$6"
local app_secret="$7"
local data="${merchant_key}|${customer_number}|${card_holder_name}|${card_number}|${expiry_month}|${expiry_year}"
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"
}
result=$(generate_save_card_create_hash_key \
"123456789" \
"CUST001" \
"AHMET YILMAZ" \
"4111111111111111" \
"12" \
"2028" \
"mySecretKey123")
echo "$result"{
"status_code": 100,
"status_description": "The card token saved successfully",
"card_token": "3acb729f7341c4fa4971a5b81b76189e"
}