【问题标题】:What does a Square nonce represent?Square nonce 代表什么?
【发布时间】:2017-05-10 20:58:10
【问题描述】:

我正在尝试向 Square 提交付款,但不确定 card_nonce 代表什么。

在此处找到的完整 API 文档中:https://docs.connect.squareup.com/api/connect/v2/#endpoint-createcustomercard

它声明,“一个卡随机数表示要链接到客户的信用卡。”

但是,在此处找到的 REST 支付处理文档中:https://docs.connect.squareup.com/articles/processing-payment-rest

它指出,“卡随机数在 24 小时后过期。如果您尝试对过期的随机数充电,Charge 端点会返回错误。”

  1. 如果我尝试存储 card_nonce 以进行定期计费,我可以使用 card_nonce 一次并重复使用它进行计费吗?

  2. 客户每次结账时都必须输入信用卡信息吗?

  3. card_nonce 是代表卡的状态,还是代表特定卡交易的密钥?

【问题讨论】:

  • “卡随机数由买家输入其卡信息的 SqPaymentForm 生成。有关更多信息,请参阅嵌入支付表单。”所以它是由表单生成的字符串。就是这样。
  • 我不是方形专家,但是是的,我认为在这种情况下用户将不得不再次重新输入他们的抄送详细信息。我不知道 Square 是否提供了一种在服务器上保存详细信息的方法。
  • 我可以使用 SqPaymentForm 将卡添加到客户资料中吗?
  • 是的,但我认为只有卡片的非机密细节。这就是为什么每次都需要生成随机数的原因。
  • @adam-beck 客户仪表板目录中有一个部分可以将卡片添加到客户的个人资料中。

标签: javascript square square-connect


【解决方案1】:

卡随机数是信用卡的标记形式。您只能使用一次,并且它们确实会过期。它“代表”一张信用卡,以及最终用户在您的付款表单中输入的所有详细信息。

如果您想将其用于重复付款,请阅读 Square 文档中的 Processing reoccurring payments

您将卡附加到客户,然后使用客户的卡 ID 针对收费端点进行付款,而最终用户无需再次输入其信用卡详细信息。

【讨论】:

  • 好的,所以在进行结帐流程时,card_nonce 可用于处理付款或连接到CreateCustomerCard 端点,但不能同时用于这两者?即,新客户必须填写单独的表格才能添加卡片?
  • 正确,每位新客户至少需要填写一次。
  • 那么您通常会看到这样的设计模式,即应用程序只有一个按钮可以添加卡片存档,以及一个单独的按钮用于一次性付款吗?
  • cardNonceResponseReceived回调期间表单上的提交按钮是否消耗card_nonce
  • 一般来说,您的应用程序仅根据其用例执行一种。设计通常只是询问客户是否要保留他们的卡,并在后端以不同的方式处理它。两个按钮会有点奇怪。卡随机数仅在您将其发送到我们的端点之一或过期时才被“消耗”。
【解决方案2】:

根据 Square 文档(下面的链接),您可以使用以下任一值作为 nonce。确保您使用沙盒凭据进行测试。

fake-card-nonce-ok — returns a successful test transaction.
fake-card-nonce-declined — returns a "Card Declined" error.

例如- 将下面的随机数替换为“fake-card-nonce-ok”或“fake-card-nonce-declined”。

ChargeRequest body = new ChargeRequest(AmountMoney: amount, IdempotencyKey: uuid, CardNonce: nonce);

https://docs.connect.squareup.com/articles/using-sandbox

这将返回一个带有交易结果信息的 JSON 对象。

【讨论】:

    【解决方案3】:

    也不是 Square 开发人员,但“nonce”一词的使用似乎暗示了您的问题的答案。基本上,随机数通常是一次性身份验证令牌或一次性密钥。所以...

    1. 根据定义,nonce 不会对任何重复发生的事情有用。

    2. 是的,客户每次都需要重新输入信息。

    3. card_nonce 可能代表该卡的单一身份验证。

    当然,如果他们对它的定义不同,我的答案可能全是错误的 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 2021-12-24
      • 2021-11-21
      • 2021-07-05
      相关资源
      最近更新 更多