For the complete documentation index, see llms.txt. This page is also available as Markdown.

Penjanaan tandatangan

PETUA (TIP)

Pedagang boleh mengikuti langkah-langkah di bawah untuk menjana tandatangan permintaan, dan platform akan mengesahkan tandatangan selepas menerima permintaan. Jika pengesahan tandatangan gagal, permintaan akan ditolak dan kod status (status code) yang sesuai akan dikembalikan.

Penyediaan (Preparation)

Pedagang perlu mendaftar dengan nombor pedagang dan mencipta aplikasi pembayaran melalui pejabat belakang pedagang untuk mendapatkan APP_ID dan APP_SECRECT.

Syarat (Condition)

Semua antara muka kaedah POST dalam dokumen ini perlu mengesahkan tandatangan, dan antara muka lain tidak perlu disahkan buat masa ini.

Penjanaan (Generation)

Rentetan tandatangan mempunyai empat baris, satu parameter untuk setiap baris. Baris berakhir dengan \n (pemisah baris, nilai pengekodan ASCII ialah 0x0A), dan jangan tambah \n pada baris terakhir. Jika parameter itu sendiri berakhir dengan \n, anda juga perlu menambah \n.

URL\n
Request timestamp\n
Request random string\n
Request message body

Mari kita ambil pertanyaan pesanan (order inquiry) sebagai contoh.

Langkah pertama ialah mendapatkan URL mutlak permintaan dan membuang bahagian nama domain untuk mendapatkan URL tandatangan yang mengambil bahagian. Jika terdapat parameter pertanyaan dalam permintaan, URL harus dilampirkan dengan '? ' dan rentetan pertanyaan yang sepadan.

/v1/transaction/query

Langkah kedua ialah mendapatkan cap masa (milisaat) semasa sistem apabila permintaan dimulakan. Iaitu, jumlah saat dari 00:00:00 GMT pada 1 Januari 1970 hingga sekarang, sebagai cap masa permintaan. Platform akan menolak untuk memproses permintaan yang dibuat lama dahulu, sila pastikan masa sistem pedagang itu sendiri tepat.

Langkah ketiga ialah menjana rentetan rawak (random string) 32-bit.

Langkah keempat ialah mendapatkan isi mesej permintaan dalam permintaan (request body).

Langkah kelima ialah membina rentetan tandatangan permintaan mengikut peraturan sebelumnya seperti berikut:

Penyulitan (Encryption)

Ambil proses penyulitan javascript sebagai contoh:

Contoh selepas penyulitan:

Menggabungkan (Concatenate)

Format sambungan maklumat tandatangan adalah seperti berikut: app_id=APP_ID, mch_id=ID Pedagang, nonce_str=Rentetan rawak yang dijana dalam langkah 3, timestamp=Cap masa yang dijana dalam langkah 2, signature=Rentetan tandatangan kriptografi.

Pengepala HTTP (HTTP header)

API dokumen melepasi tandatangan melalui pengepala HTTP Authorization. Authorization terdiri daripada dua bahagian: jenis pengesahan dan maklumat tandatangan. Jenis pengesahan hanya menyokong TTPAY-AES-256-ECB buat masa ini.

Pengepala kebenaran seperti berikut: (Nota: Contoh kerana penetapan jenis mungkin mengandungi pemisah baris, data sebenar hendaklah berada pada satu baris)

Akhir sekali, kita boleh mencipta permintaan HTTP yang mengandungi tandatangan.

Kod demo (Demo code)

Terakhir dikemas kini