如何从后端使用 Square API 获取 Card 的 Nonce

How to get Nonce for Card using Square API from Backend

在我的应用程序中,我需要从后端处理卡,我已经在其他支付网关上这样做了,但对于 Square Connect,我找不到任何东西。

我的问题是如何从后台生成Square Card Nonce? API 我应该怎么称呼?

浏览了他们的整个文档。

为了通过Square 生成卡片随机数,您必须使用SqPaymentForm。 https://docs.connect.squareup.com/payments/sqpaymentform/sqpaymentform-overview

然后您会将卡随机数传递给交易中的收费端点API:https://docs.connect.squareup.com/payments/transactions/overview

但是,您也可以使用 Checkout API 进行付款(自定义程度较低,但更易于设置):https://docs.connect.squareup.com/payments/checkout/overview

Square 的 SLACK 回复:

Square is specifically designed so you don’t need to handle client’s credit card details yourself (e.g. don’t need to securely pass it back from the client to your server) and so SqPaymentForm is designed to work client side only, and to then return a card nonce which you can safely pass from client to server. Unfortunately what you want to do is not possible by design.

我们有同样的问题。 Square 似乎是为简单的电子商务网站量身定做的。不符合 PCI 标准的站点。

我们是 PCI 1 级。我们有自定义付款表格。

Square 要求您必须使用他们的付款表格来获取他们的随机数(代币等价物)。这显然意味着您不能重复使用现有的付款字段。

此外,他们的 api 文档很差。

1 他们说您可以使用 Checkout api 并使用他们的表格。在这种情况下,您不需要符合 pci。

这里没有投诉

  1. 他们还说,如果你想控制你的 UIUX,你可以使用他们的交易 API。
    但是在这种情况下,他们没有提到如何获得随机数。
    四处寻找,您会发现获得随机数的唯一方法是使用付款表格。

显然,这意味着您必须将他们的付款表单字段用作 iframe

这不是习俗 ui/ux。

支付开发人员想要 ApI 基于卡号的令牌化。显然,这需要 PCI 合规性。 Square 不支持这个。

我建议您为高级网站使用另一个支付处理层。

应该可以在 phantom.js

上使用虚拟终端进行模拟