跳到主要内容

Sale:跳转到第三方支付

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

时序步骤

跳转支付时序图

  1. 顾客选择支付方式并点击完成支付。
  2. 浏览器将支付请求发送到 Shoplazza 服务器。
  3. Shoplazza 服务器将支付请求转发给支付应用服务器。
  4. 支付应用服务器向 Shoplazza 服务器返回跳转 URL。
  5. Shoplazza 服务器将跳转 URL 返回给浏览器。
  6. 浏览器将顾客跳转到支付网关页面。
  7. 顾客在支付网关页面提交支付信息。
  8. 支付应用服务器调用 Complete Payment API。
  9. Shoplazza 向支付应用服务器返回跳转 URL。
  10. 如果支付失败,顾客会被跳转到支付请求中的 cancel_url
  11. 如果支付成功,顾客会被跳转到 Shoplazza 返回的 complete_url
  12. 顾客进入订单支付结果页。
  13. 支付应用服务器向 callback URL 发送最终支付结果通知。
  14. Shoplazza 以 HTTP 200 确认收到通知。

支付请求

发起支付时,Shoplazza 会向支付系统发送请求头和请求参数。

请求头

Header说明
Shoplazza-Shop-IdShoplazza 系统中的店铺 ID。
Shoplazza-Shop-DomainShoplazza 分配的系统域名。
Custom-Domain当前订单使用的域名。
Custom-Ip顾客设备 IP 地址。
User-Agent顾客浏览器 User Agent。
Shoplazza-Request-Id唯一请求 ID。
Shoplazza-Api-VersionOpen API 版本。
Shoplazza-Hmac-Sha256用于请求校验的数字签名。
Customer-Cpf适用场景下的税号。

请求参数

Key是否必填类型说明
idstring支付 ID,用于幂等。
app_idstring支付应用 ID。
account_idstring支付服务商系统中的商户 ID。
shoplazza_order_idstringShoplazza 订单 ID。
amountstring订单金额,保留两位小数。
currencystring币种代码,例如 CAD
productsstring商品信息的 JSON 字符串。
cancel_urlstring顾客取消支付时使用的 URL。
complete_urlstring同步支付完成回调 URL。
callback_urlstring异步支付通知回调 URL。
customer_emailstring顾客邮箱。
customer_phone_numberstring顾客手机号。
customer_billing_*视字段而定string账单地址字段。
customer_shipping_*视字段而定string收货地址字段。
testboolean请求是否为测试模式。
typestring支付类型。跳转支付使用 sale
timestamplong请求时间戳。

响应

支付 Session 创建成功时,返回第三方支付页面 URL。

{
"redirect_url": "https://payment-gateway.example/pay"
}

失败时返回错误码和错误信息。

{
"code": "ERR-1234",
"message": "Invalid amount"
}