PayPal Vault集成问题:createVaultSetupToken回调提示无客户ID
PayPal Vault SetupToken 创建后报错:Cannot get vault - no customer id found in id token
我正在结账支付信息区域开发功能,让客户输入银行卡信息,以便出现市场损失时通过PayPal后续扣费。使用PayPal SDK实现卡片保存及扣费功能时,在createVaultSetupToken回调环节遇阻。
已实现的前后端逻辑
前端调用后端接口创建setup token并请求PayPal API,后端按文档传入空card对象的payment_source:
createVaultSetupToken: async (data) => { const result = await fetch("/PayPalExtended/setup/token", { method: "POST" }) var jsonRes = await result.json() const { id } = jsonRes; return id; },
请求返回201 Created并成功获取token,但PayPal SDK未触发OnApprove回调,反而抛出以下错误:
GraphQL错误日志
graphql_UpdateVaultSetupToken_error Object { err: "Cannot get vault - no customer id found in id token", timestamp: "1703524904796", referer: "www.sandbox.paypal.com", sdkCorrelationID: "f137663e5663e", sessionID: "sessionID", clientID: "clientID", env: "sandbox" } card-field:40:65202
OnError回调日志
Something went wrong: Error: Cannot get vault - no customer id found in id token https://www.sandbox.paypal.com/smart/card-field?type=cvv&clientID=clientID&sessionID=sessionID&clientMetadataID=uid_a55f4eb2d9_mtc6mdm6ntu&cardFieldsSessionID=cardFieldsSessionID&env=sandbox&debug=false&locale.country=GB&locale.lang=en&sdkMeta=eyJ1cmwiOiJodHRwczovL3d3dy5wYXlwYWwuY29tL3Nkay9qcz9jbGllbnQtaWQ9QVFIR2Vna3lsX2RjRmdnVmoxODFOZG80cG5id3U1YmhwaFRyRFRKWXVpdXBHZlE2RVVvaWtWQjV3WTRJMXZzTi1VeldFVVFTNU5ubnVsNWgmY3VycmVuY3k9VVNEJmludGVudD1hdXRob3JpemUmY29tbWl0PWZhbHNlJnZhdWx0PXRydWUmZGVidWc9ZmFsc2UmY29tcG9uZW50cz1idXR0b25zLGNhcmQtZmllbGRzIiwiYXR0cnMiOnsiZGF0YS1wYXJ0bmVyLWF0dHJpYnV0aW9uLWlkIjoiTm9wQ29tbWVyY2VfUFBDUCIsImRhdGEtdWlkIjoidWlkX3pqdnRodHZsZmFxaW9udGdhcGxyeHl1bnpsemp6cyJ9fQ&disable-card=¤cy=USD&intent=authorize&commit=false&vault=true&sdkCorrelationID=f137663e5663e:40
测试信息
- 使用的高级结账测试卡:
Number: 2223000048400011 date: 11/25 CCV:123 Name: Mark Thomas
- 后端API返回结果:
{ "jsonRes ": { "id": "2DV308********", "payment_source": { "Card": null, "Token": null }, "customer": { "id": "uCEH******" }, "status": "CREATED" } }
- 引入的PayPal脚本地址:
https://www.paypal.com/sdk/js?client-id=clientId&currency=USD&intent=authorize&commit=false&vault=true&debug=false&components=buttons,card-fields" data-partner-attribution-id="NopCommerce_PPCP" data-page-type="checkout" data-user-id-token="data-user-id"
已尝试的解决方案
- 硬编码卡片信息
- 添加账单地址
- 更换测试卡
- 修改脚本参数
以上尝试均未解决问题。
*注:因采用电汇支付,可能出现失败或客户取消交易,需从客户卡中扣除损失金额。
内容的提问来源于stack exchange,提问作者Dusan Jankovic
相关产品推荐
相关产品推荐

