sign maydonini yaratish va tekshirish
1. sign maydonini tekshirish namunasi
validateTransaction metodiga so‘rov namunasi:
{
"jsonrpc": "2.0",
"method": "validateTransaction",
"params": {
"amount": 500000,
"billingIdentifier": "abd_test_1",
"serviceId": "43ddbe17-2aa1-4b99-8a9d-9fc83ed9dba5",
"sign": "1479443a1e522cb7bd150dc71f1c29d1"
},
"id": 1
}Maydonlar quyidagicha to‘ldiriladi:
sign maydonini yaratish:
Format: amount:billingIdentifier:serviceId:SECRET_KEY
SECRET_KEY merchent ulanishidan keyin beriladi
Yaratish:
Maydonlarni quyidagi tartibda joylashtiramiz:
text = 500000:abd_test_1:43ddbe17-2aa1-4b99-8a9d-9fc83ed9dba5:merchant1(misolda SECRET_KEY = merchant1)
MD5 hisoblaymiz:
MD5(text) -> 1479443a1e522cb7bd150dc71f1c29d1Hash funksiyasidan keyin sign maydonining qiymati olinadi.
2. Turli dasturlash tillarida yaratish namunasi:
Java
public String encodeWithMd5String(String element) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageDigest = md.digest(element.getBytes());
BigInteger no = new BigInteger(1, messageDigest);
StringBuilder hashText = new StringBuilder(no.toString(16));
while (hashText.length() < 32) {
hashText.insert(0, "0");
}
return hashText.toString();
} catch (NoSuchAlgorithmException e) {
log.error(e);
throw CustomException.hashGeneratingFailure();
}
}PHP
function encodeWithMd5String($element) {
try {
$messageDigest = md5($element, true);
// BigInteger ga o‘xshash oltiyuzlik satrga o‘zgartirish
$no = gmp_init(bin2hex($messageDigest), 16);
$hashText = gmp_strval($no, 16);
// Oldingi nol bilan to‘ldirish
while (strlen($hashText) < 32) {
$hashText = '0' . $hashText;
}
return $hashText;
} catch (Exception $e) {
error_log($e);
throw new Exception("Xesh yaratishda xato yuz berdi");
}
}Python
import hashlib
def encode_with_md5_string(element):
try:
md = hashlib.md5()
md.update(element.encode('utf-8'))
message_digest = md.digest()
# BigInteger ga o‘xshash oltiyuzlik satrga o‘zgartirish
hash_text = format(int.from_bytes(message_digest, byteorder='big'), '032x')
return hash_text
except Exception as e:
print(f"Xato: {e}")
raise Exception("Xesh yaratishda xato yuz berdi")