跳到主要内容

Card:信用卡直接支付

card 模型允许顾客直接在 Shoplazza 结账页输入信用卡信息。该模型要求 PCI-DSS 合规,并在需要时支持 3DS 验证。

时序步骤

信用卡支付时序图

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

信用卡请求字段

信用卡直接支付使用支付 Session 请求,并在 cards 字段中传入序列化的信用卡信息。

Key是否必填类型说明
cardsstring包含信用卡信息的序列化 JSON 对象。
cards.first_namestring持卡人名。
cards.last_namestring持卡人姓。
cards.card_numberstring信用卡号。
cards.expire_yearstring两位数有效期年份。
cards.expire_monthstring两位数有效期月份。
cards.card_cvvstringCVV,3 位或 4 位。

无需 3DS 的响应

如果不需要 3DS 验证,直接返回支付结果。

{
"app_id": "12345",
"payment_id": "7eb3fefb-6b43-4400-b40a-a2a0531364ae",
"amount": "254.20",
"currency": "CAD",
"status": "paid",
"transaction_no": "123456789",
"type": "sale",
"message": "",
"test": false,
"timestamp": "2021-09-01T18:32:20Z"
}

需要 3DS 的响应

如果需要 3DS 验证,返回验证页面跳转 URL。

{
"redirect_url": "https://3ds-verification.example"
}

失败响应

{
"code": "ERR-1234",
"message": "amount less than 1000"
}