Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从后端使用Square API获取卡的Nonce_Php_Square Connect - Fatal编程技术网

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

Php 如何从后端使用Square API获取卡的Nonce,php,square-connect,Php,Square Connect,在我的应用程序中,我需要从后端处理卡,我已经在使用其他支付网关进行处理,但对于Square Connect,我找不到任何东西 我的问题是如何从后端生成方形卡Nonce?我应该调用什么API 查看了他们的全部文档。要通过Square生成卡,必须使用SqPaymentForm 然后,您将在Transactions API中将卡nonce传递给计费端点: 但是,您也可以使用Checkout API进行付款(可定制性较差,但更易于设置):来自Square SLACK的响应: Square是专门设计的,因

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

我的问题是如何从后端生成方形卡Nonce?我应该调用什么API


查看了他们的全部文档。

要通过Square生成卡,必须使用SqPaymentForm

然后,您将在Transactions API中将卡nonce传递给计费端点:


但是,您也可以使用Checkout API进行付款(可定制性较差,但更易于设置):

来自Square SLACK的响应:

Square是专门设计的,因此您不需要自己处理客户的信用卡详细信息(例如,不需要安全地将其从客户机传递回服务器),因此SquaPaymentForm设计为仅在客户端工作,然后返回一张卡,您可以安全地从客户机传递到服务器。不幸的是,你想做的事情是不可能的设计


我们也有同样的问题。Square似乎是为简单的ecom站点量身定做的。不符合PCI的站点

我们是PCi级别1。我们有一张定制付款单

Square要求您必须使用他们的支付表单才能获得他们的nonce(等价代币)。这显然意味着您不能重用现有的支付字段

此外,他们的api文档很差

他们说你可以使用签出api和他们的表单。在这种情况下,您不需要符合pci

这里没有抱怨

  • 他们还说,如果您想控制您的UIUX,您可以使用他们的事务API。
    但在这种情况下,他们没有提到如何获得临时值。
    四处寻找,你会发现,获得暂缓付款的唯一方法是使用付款单 显然,这意味着您必须将其付款表单字段用作iframe

    这不是自定义ui/ux

    支付开发者需要基于ApI的卡号标记化。显然,这需要pCI合规性。Square不支持这一点


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

    应该可以在phantom.js上使用虚拟终端进行仿真

    感谢上面的链接,但我需要在服务器端处理卡,我想在服务器端(后端)生成卡Nonce。目前使用Square无法实现这一点。生成卡nonce的唯一方法是使用SqPaymentForm,这样Square就可以处理所有机密相关信息,开发人员无需担心。我很确定,通过将卡信息保存在客户下面,您可以得到想要的信息。然后你可以对卡重新收费(如按月订阅)。这应该被标记为应答。为我节省了额外的浪费时间。获得临时付款的方法是使用方形付款表。要重复使用卡详细信息,您可以将nonce保存为客户卡,然后使用客户nonce重新收费(这指的是保存在客户下的卡详细信息)。与其他答案一样,这似乎是不可能的。我们不使用正方形,因为这是一个疯狂的限制。我怀疑这里问错了问题,因此给出了错误的答案。