LogoLogo
  • Internet-ekvayering bilan integratsiya
  • Billing API integratsiyasi uchun talablar
    • Hold API
    • Check Transaction API
    • Ehtimoli bo‘lgan xatolar
    • Validate Order API
    • Tranzaksiya holati
    • Cancel API
    • Sign maydonini yaratish va tekshirish
    • Pay API

sign maydonini yaratish va tekshirish

  1. Billing api integratsiyasi uchun talablar
  2. Sign maydonini yaratish va tekshirish

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:

  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

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

OldingiCancel API
KeyingiPay API