如何测试和沙箱调试泰国支付接口?
泰国支付接口测试与沙箱调试指南
作为支付平台专家,以下是测试和沙箱调试泰国支付接口的详细方法:
1. 获取沙箱环境访问权限
- 注册开发者账户:在目标支付网关(如Omise、2C2P、TrueMoney等)官网申请开发者账号
- 申请API密钥:获取用于沙箱环境的测试API密钥(通常分为public key和secret key)
- 下载SDK/文档:获取官方提供的SDK和API文档
2. 常见泰国支付接口类型及测试要点
a. 银行卡支付
- 测试卡号:使用提供商提供的测试卡号(如4111 1111 1111 1111)
- CVV/CVC:任意3位数字
- 有效期:未来日期
- 3D Secure验证:模拟不同响应场景(成功/失败/超时)
b. QR码支付(PromptPay)
- 生成测试QR码
- 模拟扫码流程
- 验证回调通知
c. TrueMoney钱包
3. TrueMoney钱包接口测试方法
TrueMoney是泰国流行的电子钱包,测试其支付接口需要以下步骤:
a. 获取沙箱环境凭证
- 在TrueMoney开发者平台注册并申请Sandbox商户账户
- 获取测试用的 API Key、Merchant ID、Secret Key
- 下载官方SDK(如PHP/Java/Python)或REST API文档
b. TrueMoney沙箱模拟流程
-
用户授权登录模拟
- 使用沙箱提供的测试手机号(如
0812345678
)和OTP验证码(如123456
) - SDK应返回临时Token用于支付请求
- 使用沙箱提供的测试手机号(如
-
发起支付请求(API调用示例)
import requests
url = "https://sandbox.truemoney.com/api/v1/payments"
headers = {
"Authorization": "Bearer YOUR_SANDBOX_API_KEY",
"Content-Type": "application/json"
}
payload = {
"merchant_id": "SANDBOX_MERCHANT_ID",
"amount": 100, # THB (泰铢)
"reference_id": "TEST_ORDER_123",
"callback_url": "<你的回调URL>",
}
response = requests.post(url, headers=headers, json=payload)
print(response.json()) # {status: success, payment_url: "...", transaction_id: ...}
-
模拟用户确认付款
- Sandbox会返回一个虚拟的
payment_url
- 访问该URL,输入测试OTP (
111111
)完成扣款
- Sandbox会返回一个虚拟的
-
验证回调通知
POST /your-callback-endpoint HTTP/1.1
{
“transaction_id”: “SANDBOX_TXN_001”,
“status”: “success”,
“amount”: 100,
“reference_id”: ”TEST_ORDER_123”
}
c.PromptPay (泰国国家QR标准)
a.生成沙箱QR码
curl -X POST https://api.sandbox.bank.co.th/qr/generate \
-H 'Authorization: Bearer SANDBOX_API_KEY' \
-d '{
"amount":50,
"account":"0912345678@thaibank",
"note":"Test Payment"
}'
响应示例:
{"qr_data":"000201010212...","expiry_time":"2025-12-31T23:59"}
b.扫码支付结果模拟工具
部分银行提供Webhook调试器(如Kasikorn的K+ Developer Sandbox)可手动触发SUCCESS/FAIL状态。
d.信用卡(国际卡/VISA/Mastercard)特殊处理
泰国本地化要求:
|字段|测试值|说明|
|—|—|—|
|Card Number|4111111111111111|VISA测试卡|
|CVV |任意3位数字||
Expiry Date未来月份|||
3D Secure认证 必测场景:
1️⃣成功流程 → OTP输入sandbox提供值
2️⃣失败流程 → OTP错误三次
3️⃣超时 →不输入OTP等待300秒
#4.关键验证点总结
✅所有金额必须为THB且支持小数(0禁用!)
✅正确接收异步通知(callback/webhook)
✅日志记录完整的raw request/response
⚠️真实环境切换前确保关闭sandbox flag!
需要更详细的某家提供商案例吗?例如Omise或2C2P?