PayPal 保存以供稍后购买 - 保存卡问题

问题描述 投票:0回答:1

我正在创建一个有关结帐付款信息的部分,客户应在其中输入其银行卡详细信息,以便在市场损失 (*) 的情况下,我们可以稍后通过 PayPal 在该卡上向他收费。 我正在使用 PayPal SDK 来实现此功能,以保存 cPayPalards 并稍后收费,但我遇到了“createVaultSetupToken”回调的问题。我创建了前端和后端逻辑,并调用后端来创建设置令牌和 PayPal API(下面的 FE 代码,BE API 请求就像文档 paymnet_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,我取回了令牌,并将其返回给回调,并且 SDK 从未调用 OnApprove 回调,因为我收到来自 PayPal SDK 的错误。

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=&currency=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"

不知道是什么问题,几乎尝试了所有方法:) .

* 由于这是一种电汇付款方式,因此可能会失败,或者客户可能在一段时间后停止交易,我们有这项政策,如果发生这种情况,我们将向客户收取信用卡损失的费用。

几乎什么都试过了。

  • 具有硬编码的卡详细信息(认为空卡是问题所在)
  • 用卡添加帐单地址(认为缺少地址是客户的问题)
  • 尝试了不同的卡、姓名、有效期、ccv..
  • 更改 paypal 脚本 src 查询参数
javascript c# paypal paypal-sandbox paypal-rest-sdk
1个回答
0
投票

所以,回答这个脚本 src:

https://www.paypal.com/sdk/js?client-id=clientId¤cy=USD&intent=authorize&commit=false&vault=true&debug=false&components=buttons,card-fields" data-partner-attribution-id="NopCommerce_PPCP “ data-page-type =“结帐” data-user-id-token =“data-user-id”

变数太多。特别是 data-user-id-token 让我很怀疑,但其意图也可能是保管库的问题。保存付款方式文档中的较短的 SDK src 似乎可以工作:

https://www.paypal.com/sdk/js?components=card-fields&client-id=CLIENT-ID

© www.soinside.com 2019 - 2024. All rights reserved.