- 步骤 1
签名请求
对时间戳、方法、路径和请求体哈希做 HMAC-SHA256。密钥只保存在你的服务器上。
X-Shop-Id: shop_… X-Timestamp: 1793400000 X-Signature: hex(HMAC-SHA256(secret_key, timestamp ⏎ METHOD ⏎ path ⏎ sha256(body))) - 步骤 2
创建支付
金额以最小单位计。使用相同的 Idempotency-Key 重复请求会返回同一笔支付。
POST /v1/payments Idempotency-Key: 4f1c… { "orderId": "A-1001", "amount": 24990, "currency": "EUR", "returnUrl": "https://shop.example/thanks" } - 步骤 3
引导顾客付款
支付页会按国家和币种展示支付方式,完成收款后将顾客带回你的网站。
→ 201 { "id": "pay_…", "status": "created", "checkoutUrl": "https://pay…/c/…" } - 步骤 4
接收 Webhook
验证签名并将订单标记为已支付。未收到 2xx 响应时,我们会重试两天。
POST https://shop.example/payos/webhook X-Payos-Signature: v1=… { "type": "payment.succeeded", "data": { "orderId": "A-1001", … } }