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

- 顾客输入信用卡信息并点击完成支付。
- 浏览器将支付请求发送到 Shoplazza 服务器。
- Shoplazza 服务器将支付请求转发给支付应用服务器。
- 支付应用服务器向 Shoplazza 服务器返回支付状态。
- Shoplazza 服务器将支付结果返回给浏览器。
- 如果需要 3DS 验证,浏览器会将顾客跳转到 3DS 验证页面。否则流程继续进入结果页。
- 顾客在 3DS 页面提交验证信息。
- 支付应用服务器调用 Complete Payment API。
- Shoplazza 向支付应用服务器返回跳转 URL。
- 如果支付失败,顾客会被跳转到支付请求中的
cancel_url。 - 如果支付成功,顾客会被跳转到 Shoplazza 返回的
complete_url。 - 顾客进入订单支付结果页。
- 支付应用服务器向 callback URL 发送最终支付结果通知。
- Shoplazza 以 HTTP
200确认收到通知。
信用卡请求字段
信用卡直接支付使用支付 Session 请求,并在 cards 字段中传入序列化的信用卡信息。
| Key | 是否必填 | 类型 | 说明 |
|---|---|---|---|
cards | 否 | string | 包含信用卡信息的序列化 JSON 对象。 |
cards.first_name | 否 | string | 持卡人名。 |
cards.last_name | 否 | string | 持卡人姓。 |
cards.card_number | 否 | string | 信用卡号。 |
cards.expire_year | 否 | string | 两位数有效期年份。 |
cards.expire_month | 否 | string | 两位数有效期月份。 |
cards.card_cvv | 否 | string | CVV,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"
}