支付回调 API
支付回调 API 允许支付服务商将支付和退款状态更新到 Shoplazza。
支付应用会使用两类回调:
- 完成支付:同步回调,用于顾客完成跳转支付、iframe 支付,或完成需要 3DS 验证的信用卡直接支付后。Shoplazza 会返回一个跳转 URL,将顾客带到支付完成页。
- 支付和退款通知:异步回调,用于向 Shoplazza 通知支付和退款的最终结果。
如果 Shoplazza 没有收到成功响应,支付应用必须按照重试策略重试请求。
完成支付
需要 write_payment_info 访问权限。
当顾客在第三方页面完成支付,或完成 3DS 验证后,使用 Complete Payment API。此阶段不需要返回最终支付结果,目的是继续顾客侧支付流程。
请求头
| Header | 说明 |
|---|---|
Access-Token | 鉴权后返回的 OAuth 授权 token。 |
Shoplazza-Shop-Domain | 店铺的 Shoplazza 系统域名。 |
Shoplazza-Hmac-Sha256 | 按签名方法计算得到的签名。 |
Content-Type | 固定为 application/json。 |
请求参数
| Key | 是否必填 | 类型 | 说明 |
|---|---|---|---|
app_id | 是 | string | 支付应用 ID。 |
payment_id | 是 | string | 支付 ID。 |
amount | 是 | number | 订单金额。 |
currency | 是 | string | 币种代码。 |
transaction_no | 是 | string | 第三方支付交易号。 |
type | 是 | string | 支付类型,例如 sale 或 authorization。 |
test | 是 | boolean | 请求是否为测试模式。 |
status | 是 | string | 支付状态,固定为 paying。 |
extension | 否 | object | 自定义扩展字段。 |
timestamp | 是 | string | ISO 8601 时间戳。 |
成功响应
{
"redirect_url": "https://developer.myshoplaza.com/checkout/12345"
}
支付和退款通知
需要 write_payment_info 访问权限。
使用通知回调异步通知 Shoplazza 最终支付或退款结果。支付和退款共享相同请求格式,仅 type 和 status 取值不同。
请求头
| Header | 说明 |
|---|---|
Access-Token | 鉴权后返回的 OAuth 授权 token。 |
Shoplazza-Shop-Domain | 店铺的 Shoplazza 系统域名。 |
Shoplazza-Hmac-Sha256 | 按签名方法计算得到的签名。 |
Content-Type | 固定为 application/json。 |
请求参数
| Key | 是否必填 | 类型 | 说明 |
|---|---|---|---|
app_id | 是 | string | 支付应用 ID。 |
payment_id | 是 | string | 支付 ID。 |
amount | 是 | number | 支付或退款金额。 |
currency | 是 | string | 币种代码。 |
status | 是 | string | 支付状态(paid、failed)或退款状态(refund_success、refund_failed)。 |
transaction_no | 是 | string | 第三方支付交易号。 |
type | 是 | string | 支付通知使用 sale,退款通知使用 refund。 |
message | 否 | string | 失败信息,交易失败时必填。 |
error_code | 条件必填 | string | 错误码,status 为 failed 时必填。 |
test | 是 | boolean | 请求是否为测试模式。 |
extension | 否 | object | 自定义扩展字段。 |
timestamp | 是 | string | ISO 8601 时间戳。 |
成功响应
Shoplazza 收到通知后返回 HTTP 200。
{}