Appearance
🔐 Tạo chữ ký giao dịch Pay2S bằng Postman
1. Thiết lập biến môi trường
Thêm 3 biến trong Postman Environment:
Tên biến | Giá trị mẫu |
---|---|
accessKey | 66e862c8...b2eb3 |
partnerCode | PAY2S7EPF0SB1ZP27W71 |
secretKey | ... (bí mật từ Pay2S) |
2. Pre-request Script mẫu
javascript
const date = Date.now();
const requestId = date.toString();
const orderId = requestId;
const requestType = "pay2s";
const redirectUrl = "https://webhook.site/your-return-url";
const ipnUrl = "https://webhook.site/your-ipn-url";
const amount = "10000";
const orderInfo = "DH" + orderId;
const extraData = "";
const accessKey = pm.environment.get("accessKey") || "";
const partnerCode = pm.environment.get("partnerCode") || "";
const secretKey = pm.environment.get("secretKey") || "";
// Chuỗi ký: Pay2S yêu cầu dùng 'Array' cố định cho bankAccounts
const rawSignature =
"accessKey=" + accessKey +
"&amount=" + amount +
"&bankAccounts=Array" +
"&ipnUrl=" + ipnUrl +
"&orderId=" + orderId +
"&orderInfo=" + orderInfo +
"&partnerCode=" + partnerCode +
"&redirectUrl=" + redirectUrl +
"&requestId=" + requestId +
"&requestType=" + requestType;
console.log("🧾 rawSignature:", rawSignature);
const hash = CryptoJS.HmacSHA256(rawSignature, secretKey);
const signature = CryptoJS.enc.Hex.stringify(hash);
// Gán vào biến môi trường
pm.environment.set("requestId", requestId);
pm.environment.set("orderId", orderId);
pm.environment.set("signature", signature);
3. Body mẫu gửi lên API
json
{
"accessKey": "{{accessKey}}",
"partnerCode": "{{partnerCode}}",
"partnerName": "Test Partner",
"requestId": "{{requestId}}",
"amount": 10000,
"orderId": "{{orderId}}",
"orderInfo": "DH{{orderId}}",
"orderType": "pay2s",
"bankAccounts": [
{
"account_number": "99999999",
"bank_id": "ACB"
}
],
"redirectUrl": "{{redirectUrl}}",
"ipnUrl": "{{ipnUrl}}",
"requestType": "pay2s",
"signature": "{{signature}}"
}
4. 📌 Lưu ý
Trường
bankAccounts=Array
phải giữ nguyên trong rawSignatureLuôn log rawSignature để đối chiếu với server
requestId nên theo timestamp để đảm bảo duy nhất