泰国原生支付API集成指南

主要支付方式概述

泰国市场主要有以下几种原生支付方式需要集成:

  1. PromptPay – 泰国国家电子支付系统
  2. TrueMoney Wallet – 流行的电子钱包
  3. Rabbit LINE Pay – LINE应用内支付
  4. ShopeePay – Shopee旗下的移动支付
  5. 银行转账/网银(Internet Banking) – 各大银行的直接转账

API集成步骤

1. 选择支付服务提供商

推荐考虑以下平台:

  • Omise (支持多种泰国本地支付)
  • Stripe (部分地区支持PromptPay)
  • AsiaBill (专注亚洲市场)
  • Direct integration with local providers (如TrueMoney官方API)

2. PromptPay API集成要点

// Omise PromptPay示例代码
const omise = require('omise')({
'secretKey': 'skey_test_...'
});

omise.sources.create({
amount: "150000", // satang单位(1THB=100satang)
currency: "thb",
type: "promptpay",
}, function(err, resp) {
// QR码生成和回调处理逻辑...
});

3. TrueMoney Wallet集成关键点

需要:

  • TrueMoney商户账户注册
  • OAuth认证流程实现
  • Webhook设置用于交易状态更新
# TrueMoney基本请求示例(Python)
import requests

headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
}

response = requests.post(
'https://api.truemoney.com/v1/payments',
headers=headers,
json={
"amount": "1000",
"recipient_mobile": "+66891234567"
# ...其他参数...
}
)

Sandbox测试环境建议

所有主要提供商都提供沙盒环境,务必在真实交易前完成:

  1. Omise沙盒: https://dashboard-sandbox-api-staging-v2.gomo.co/
  2. TrueMoney测试账号可通过开发者门户申请

Go Live注意事项

1.合规要求

泰国原生支付API集成指南(续)

Go Live注意事项

1. 合规要求

  • BOI认证:外国公司在泰国开展支付业务需向泰国投资委员会(BOI)申请
  • 电子交易法:遵守《2001年电子交易法》和《2019年数字支付法令》
  • 数据本地化:部分用户数据可能需要在泰国境内存储
  • PCI DSS认证:处理信用卡/借记卡需要符合支付卡行业安全标准

2. KYC/AML流程

graph TD;
A[用户注册] --> B[手机号验证];
B --> C{金额>50,000THB?};
C -- Yes --> D[身份证扫描+活体检测];
C -- No --> E[基础信息收集];

3. API限流与性能考量

提供商 QPS限制 建议超时设置
Omise 100 <5秒
TrueMoney API 50 <8秒
PromptPay直连 30 <10秒

Webhook实现最佳实践

// Express.js示例 - Webhook验证中间件
const crypto = require('crypto');

function verifyWebhook(req, res, next) {
const signature = req.headers['x-signature'];
const payload = JSON.stringify(req.body);

const hmac = crypto.createHmac('sha256', process.env.WEBHOOK_SECRET);
const digest = hmac.update(payload).digest('hex');

if (signature !== digest) return res.status(403).send();

next(); // 验证通过继续处理逻辑...
}

QR Code支付特殊处理

针对PromptPay的QR码生成:

  1. 静态QR码 – 适用于固定金额场景(便利店等)
  2. 动态QR码 – eCommerce推荐使用,包含:
    • Transaction ID
    • Amount信息
    • Expiry时间(通常5分钟)
# Python动态QR生成示例(qrcode库)
import qrcode

def generate_promptpay_qr(mobile, amount):
payload = f"00020101021129370016A00000067701011101130066{mobile}5802TH530376454{amount:.2f}6304"

# CRC16校验计算...
crc = calculate_crc16(payload.encode())
full_payload = f"{payload}{crc:04X}"

return qrcode.make(full_payload)

Troubleshooting常见问题

  1. 错误代码表

    CODE_40: PromptPay限额超出(单笔上限200,000THB)
    TM_108: TrueMoney钱包余额不足
    OMISE_ERR_CURRENCY: THB货币格式错误(必须使用satang单位)

2.重试策略建议

{
"retry_policy": {
"max_attempts":3,
"backoff_factor": [0.5,1,2], //等待秒数
},
}

需要我继续深入哪个具体环节?例如:
• TrueMoney OAuth授权流程细节
• Bank Transfer通知对账方案
• PCI合规的具体实施步骤