Checkout.com托管支付:能否复用卡信息预填用户后续支付表单?
实现Checkout.com托管支付预填卡信息的方案
可以实现这个需求,不需要你保存任何卡明文信息,完全依赖Checkout.com的客户和支付源机制来完成预填,具体操作如下:
第一步:保存关键标识符
第一次支付完成后,从返回的payment对象中提取customer.id和source.id(这两个都是Checkout生成的安全标识符,不包含任何卡明文数据,合规性没问题),并将这两个值关联到你的网站用户账号上存储。第二步:创建托管支付会话时关联已有信息
当该用户再次发起支付时,调用创建托管支付会话的接口时,在请求参数中传入已保存的customer.id和source.id,示例请求体如下:{ "amount": 1000, "currency": "USD", "customer": { "id": "cus_xxxxxx" }, "payment": { "source": { "id": "src_xxxxxx" } }, "success_url": "https://your-site.com/success", "failure_url": "https://your-site.com/failure" }效果说明
提交这样的请求后,Checkout的托管支付页面会自动预填该用户关联的卡信息(仅显示掩码后的卡号,比如****1234),用户只需要输入CVV码并确认支付即可,全程你不需要接触任何敏感卡数据。
另外,如果用户有多个支付源,你还可以在customer对象中设置default_source字段为对应的source.id,这样后续创建会话时无需每次指定payment.source.id,系统会自动使用默认源预填信息。
如果遇到参数不生效的情况,建议确认你的Checkout账号是否默认开启了客户与支付源的保存权限,若有疑问可直接联系Checkout的技术支持。
内容的提问来源于stack exchange,提问作者Konstanitnos Schoinas
相关产品推荐
相关产品推荐

