高级8 分钟阅读
Shopify 加密支付桥接
通过 Shopify 自定义手动支付方式连接 PolyPay Hosted Checkout。该方案不是 Shopify 审批的 Payments App。
方案边界
Shopify 原生 Payments App 需要 Payments Partner 邀请、受限权限、mTLS 和 Shopify 审核。本桥接服务适合单个商户自建 Custom App,并明确启用手动支付方式的场景。
部署步骤
- 部署 PHP 桥接服务,并把 config.example.php 复制为私有 config.php
- 创建 Shopify Custom App,授予 read_orders 和 write_orders
- 创建名称完全一致的 PolyPay - Crypto Payment 手动支付方式
- 把静态支付指引设置为 https://你的支付域名/pay
- 配置订单创建和订单取消两个 Shopify JSON Webhook
- 执行 php bin/activate.php,并先用 PolyPay Sandbox 验证完整流程
支付与安全规则
- 客户必须使用 Shopify 订单号和下单邮箱验证订单
- 支付方式选择由 PolyPay Hosted Checkout 负责
- 浏览器成功返回页不能把 Shopify 订单标记为已支付
- PolyPay 回调必须通过时间戳、nonce 和 Ed25519 v2 签名验证
- 回调按 environment 和 event_id 去重,重复投递不会重复入账
- Shopify 取消订单时同步取消仍处于等待状态的 PolyPay trade_id
- 当前订单币种必须为 USD;退款需要按商户退款政策人工处理
多实例部署
默认 nonce 和事件去重存储使用共享文件系统。横向扩容前必须替换为 Redis 等共享原子存储,否则不同实例无法可靠防重放和去重。