跳转到主要内容

支付收费(SDK)

POST/api/v1/bank/public/charge/{uuid}/pay
公共端点

此端点由 A55Pay SDK 从付款人的浏览器调用。不需要 Bearer token——收费 UUID 作为授权上下文。您的后端先创建收费,然后前端 SDK 调用此端点。


请求头

请求头必填
Content-Typeapplication/json

路径参数

字段类型必填说明
uuidstring (UUID)创建收费返回的收费 UUID

请求体

字段类型必填说明
card_numberstring卡号(PAN)
card_namestring持卡人姓名
card_expiry_monthstring到期月份 MM
card_expiry_yearstring到期年份 YYYY
card_cvvstring卡片验证码
payer_tax_idstring付款人税务 ID(CPF、RFC、RUT)
device_infoobject用于 3DS 的浏览器指纹信息(参见创建收费

响应字段

字段类型说明
charge_uuidstring收费标识符
statusstringconfirmedpending(需要 3DS)或 error
url_3dsstring3DS 挑战重定向 URL(当 status: "pending" 时)
messagearray/nullstatus: "error" 时的错误详情

HTTP 状态码

状态码说明
200支付已处理或 3DS 挑战已发起
400卡片数据无效或缺少必填字段
404收费未找到或已过期
409收费已支付或已取消
422验证错误(卡片无效、已过期)
429超出请求频率限制
500服务器内部错误

代码示例

curl -s -X POST "https://core-manager.a55.tech/api/v1/bank/public/charge/a1b2c3d4-e5f6-7890-abcd-ef1234567890/pay" \
-H "Content-Type: application/json" \
-d '{
"card_number": "4024007153763191",
"card_name": "张伟",
"card_expiry_month": "12",
"card_expiry_year": "2030",
"card_cvv": "123",
"payer_tax_id": "123.456.789-09"
}'

错误响应示例

{
"charge_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "error",
"message": [
{
"code": "CARD_DECLINED",
"source": "acquirer",
"description": "Transaction declined by issuing bank"
}
]
}