LogoLogo
  • Ishni boshlash
  • Merchant API
    • Integratsiya qilish
    • Sign imzosi
    • Tranzaksiya holatlari
    • Xatoliklar (ERRORS)
  • Subscribe API — kartalar va to‘lovlar

sign imzosi

  1. Merchant API
  2. Sign imzosi

sign imzosi

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:

  1. Maydonlarni quyidagi tartibda joylashtiramiz:

text = 500000:abd_test_1:43ddbe17-2aa1-4b99-8a9d-9fc83ed9dba5:merchant1

(misolda SECRET_KEY = merchant1)

  1. MD5 hisoblaymiz:

MD5(text) -> 1479443a1e522cb7bd150dc71f1c29d1

Hash funksiyasidan keyin sign maydonining qiymati olinadi.

2. Turli dasturlash tillarida yaratish namunasi:

Java

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

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

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")

OldingicheckTransaction. Tranzaksiya holatini tekshirish
KeyingiTranzaksiya holatlari