网站接受PromptPay支付:完整技术指南2026
PromptPay已成为泰国消费者和商家的主导支付方式。将其集成到您的网站中,不仅需要理解支付流程,还需要深入了解webhook、服务器端验证和安全最佳实践。本指南涵盖接受PromptPay的所有技术方面。
目录
什么是PromptPay及其对电商的重要性
PromptPay是泰国的国家级二维码支付系统,由泰国央行开发,用于简化移动转账。用户无需记住冗长的银行账号,而是使用PromptPay ID(通常是电话号码、身份证号或税号)进行汇款。对于网站运营商来说,支持PromptPay几乎是有效覆盖泰国客户的必要条件。
- 由泰国央行开发和运营的国家级二维码支付系统
- 用户使用PromptPay ID(电话号码、身份证号或税号)代替账号转账
- 注册在现有银行应用内进行,无需单独创建账户
- 实时结算,消费者信任度高,在泰国广泛采用
二维码支付流程:逐步说明
当客户在结账时选择PromptPay时,您的服务器生成一个EMV格式的二维码,包含交易详情:金额、商家的PromptPay ID和参考号。客户用智能手机扫描二维码,该操作会打开其银行应用以确认转账。同时,支付网关的服务器向您的网站后端发送webhook回调,通知系统支付已完成。
- 客户点击PromptPay,结账页面显示二维码
- 扫描自动打开其银行应用,交易详情预填
- 在银行的安全环境中使用PIN或指纹认证和确认
- 网关服务器向您的后端发送webhook以确认支付完成
支付网关分类:如何选择
多种支付解决方案支持PromptPay。第三方支付网关是一体化平台,处理多种支付方式(包括PromptPay),抽象化合规复杂性。银行商家API提供更深层次的控制,但需要更多技术专长。电商平台插件提供最简单的设置,代码最少,但定制潜力有限。
- 支持多种支付方式的第三方支付网关
- 来自商业银行或金融科技公司的直接商家API
- 流行平台的预构建插件(WooCommerce、Shopify、自定义框架)
- 权衡:易用性vs. 交易费用vs. 定制控制
集成步骤:从注册到上线
集成通常遵循标准流程。首先,向支持PromptPay的支付提供商注册。其次,检索您的API凭证并安全存储。第三,安装提供商的SDK或库。第四,构建后端端点以接收和验证webhook通知。第五,在沙箱环境中测试整个流程,然后启用实时交易。
- 向选定的提供商注册并完成商家入驻
- 检索API凭证并在环境变量中安全存储
- 在代码库中安装其SDK/库
- 构建具有签名验证的webhook接收端点
- 仅在全面沙箱验证后部署到生产环境
Webhook和服务器端支付验证
Webhook是HTTP回调——支付网关在交易状态变化时向您的服务器发送POST请求。您的后端必须通过检查其加密签名来验证webhook,使用只有您的服务器和网关知道的密钥。这种验证可防止攻击者伪造虚假支付通知。永远不要仅基于客户端信号假设支付成功。
- Webhook是服务器到服务器的通知,客户端无法伪造
- 负载包括交易ID、金额、状态、时间戳和加密签名
- 始终使用共享密钥验证签名;绝不跳过此步骤
- 客户端信号(JavaScript)不可靠且可被篡改
PromptPay与信用卡网关:主要差异
PromptPay和信用卡支付在根本上是不同的。信用卡交易要求客户输入敏感卡片数据,这些数据通过您的网站流动。PromptPay不需要卡片数据;客户在其银行应用内认证。信用卡处理需要PCI-DSS合规性,这是一个严格的标准,限制了您的服务器可以接触的支付数据。PromptPay完全避免了这种情况。
- 信用卡在您的网站上需要敏感卡片数据
- PromptPay将所有数据保留在客户的银行应用内——更安全的架构
- 信用卡合规意味着对您的基础设施的严格PCI-DSS负担
- PromptPay将安全合规转移给受监管的金融机构
- PromptPay是最终且不可逆转的;信用卡允许退款纠纷
商家的关键安全考虑
PromptPay集成的安全性围绕服务器端验证和凭证管理。永远不要相信客户端支付信号。将API密钥存储在后端服务器的环境变量中;永远不要硬编码。仅对webhook端点使用HTTPS。使用共享密钥通过HMAC-SHA256验证webhook签名。记录所有webhook事件用于审计,并通过检查交易ID是否已处理来幂等处理重复webhook。
- 每次都使用共享密钥在服务器端验证webhook签名
- 绝不在版本控制或前端硬编码或公开API密钥
- 仅对所有webhook端点使用HTTPS——拒绝HTTP请求
- 实现速率限制以防止webhook端点滥用
- 使用时间戳记录所有webhook用于审计和纠纷解决
最佳实践和实施技巧
实施这些最佳实践:为每个交易使用唯一的参考ID。在成功的webhook验证后立即发送确认电子邮件。将所有webhook事件记录到数据库表中用于审计。为失败的webhook传递实现指数退避重试逻辑。考虑使用消息队列异步处理webhook,以在流量尖峰期间提高弹性。
- 为每笔交易使用唯一的、不可变的参考ID以确保准确的订单匹配
- 在webhook验证后立即发送确认电子邮件,包含订单详情
- 在数据库中存储所有webhook负载用于审计、调试和纠纷解决
- 使用指数退避优雅地处理webhook重试和超时
常见问题解答
我不能让客户重定向回我的网站并假设支付成功吗?
不能。客户或攻击者可以绕过重定向或篡改URL参数。Webhook是服务器到服务器的通知,如果没有您的密钥无法伪造——这是支付确实成功的权威记录。
PromptPay支持退款吗?
支持,但仅由商家发起。商家必须通过支付网关的仪表板使用原始交易ID发起退款。退款金额在1-3个工作日内返回到客户的银行账户。
我的API密钥泄露了。我应该怎样做?
立即生成新的API密钥并使用新密钥重新部署您的服务器。查看过去24-48小时的webhook日志以识别任何未授权的交易。要求您的提供商撤销旧密钥。
Webhook签名的有效期是多长?
通常从创建开始5分钟到1小时,具体取决于您的提供商。验证时间戳可确保攻击者无法重放旧webhook事件以触发重复订单。