Sale:跳转到第三方支付
在 sale 模型中,顾客会从 Shoplazza 结账页跳转到第三方支付页面完成交易。
时序步骤

- 顾客选择支付方式并点击完成支付。
- 浏览器将支付请求发送到 Shoplazza 服务器。
- Shoplazza 服务器将支付请求转发给支付应用服务器。
- 支付应用服务器向 Shoplazza 服务器返回跳转 URL。
- Shoplazza 服务器将跳转 URL 返回给浏览器。
- 浏览器将顾客跳转到支付网关页面。
- 顾客在支付网关页面提交支付信息。
- 支付应用服务器调用 Complete Payment API。
- Shoplazza 向支付应用服务器返回跳转 URL。
- 如果支付失败,顾客会被跳转到支付请求中的
cancel_url。 - 如果支付成功,顾客会被跳转到 Shoplazza 返回的
complete_url。 - 顾客进入订单支付结果页。
- 支付应用服务器向 callback URL 发送最终支付结果通知。
- Shoplazza 以 HTTP
200确认收到通知。
支付请求
发起支付时,Shoplazza 会向支付系统发送请求头和请求参数。
请求头
| Header | 说明 |
|---|---|
Shoplazza-Shop-Id | Shoplazza 系统中的店铺 ID。 |
Shoplazza-Shop-Domain | Shoplazza 分配的系统域名。 |
Custom-Domain | 当前订单使用的域名。 |
Custom-Ip | 顾客设备 IP 地址。 |
User-Agent | 顾客浏览器 User Agent。 |
Shoplazza-Request-Id | 唯一请求 ID。 |
Shoplazza-Api-Version | Open API 版本。 |
Shoplazza-Hmac-Sha256 | 用于请求校验的数字签名。 |
Customer-Cpf | 适用场景下的税号。 |
请求参数
| Key | 是否必填 | 类型 | 说明 |
|---|---|---|---|
id | 是 | string | 支付 ID,用于幂等。 |
app_id | 是 | string | 支付应用 ID。 |
account_id | 是 | string | 支付服务商系统中的商户 ID。 |
shoplazza_order_id | 是 | string | Shoplazza 订单 ID。 |
amount | 是 | string | 订单金额,保留两位小数。 |
currency | 是 | string | 币种代码,例如 CAD。 |
products | 是 | string | 商品信息的 JSON 字符串。 |
cancel_url | 是 | string | 顾客取消支付时使用的 URL。 |
complete_url | 是 | string | 同步支付完成回调 URL。 |
callback_url | 是 | string | 异步支付通知回调 URL。 |
customer_email | 否 | string | 顾客邮箱。 |
customer_phone_number | 否 | string | 顾客手机号。 |
customer_billing_* | 视字段而定 | string | 账单地址字段。 |
customer_shipping_* | 视字段而定 | string | 收货地址字段。 |
test | 否 | boolean | 请求是否为测试模式。 |
type | 是 | string | 支付类型。跳转支付使用 sale。 |
timestamp | 是 | long | 请求时间戳。 |
响应
支付 Session 创建成功时,返回第三方支付页面 URL。
{
"redirect_url": "https://payment-gateway.example/pay"
}
失败时返回错误码和错误信息。
{
"code": "ERR-1234",
"message": "Invalid amount"
}