微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为 Square 支付网关在一笔交易中创建两个 nonce

如何解决为 Square 支付网关在一笔交易中创建两个 nonce

我正在开发 Square 支付网关,我创建了三个步骤:创建客户、创建卡,然后进行付款。

            $create_customer_request = new \Square\Models\CreateCustomerRequest();
            $address = new \Square\Models\Address();
            $address->setAddressLine1($ship_address);
            $address->setPostalCode($_POST['ship_postcode']);
            $address->setCountry('US');
            $create_customer_request->setGivenname($_POST['f_name']);
            $create_customer_request->setFamilyName($_POST['f_name']);
            $create_customer_request->setEmailAddress($_POST['email']);
            $create_customer_request->setAddress($address);
            $create_customer_request->setPhoneNumber($_POST['phone']);
            $create_customer_request->setReferenceId($_POST['f_name']."-customer-".rand(10,15));
            $create_customer_request->setNote('A customer');
            $custcreateapiResponse = $client->getCustomersApi() >createCustomer($create_customer_request);
            $custcreateapiResponse->isSuccess();
            $_SESSION['temp_customer_id'] = $cust_res->getCustomer()->getId(); 

创建卡片请求

$body_card = new \Square\Models\CreateCustomerCardRequest($_POST['nonce']);
$card_api_response = $client->getCustomersApi()->createCustomerCard($_SESSION['temp_customer_id'],$body_card);

付款

$payments_api = $client->getPaymentsApi();
$money->setAmount(10);
$money->setCurrency('USD');
$pay_body = new \Square\Models\CreatePaymentRequest($_POST['nonce'],uniqid(),$money);
$pay_body->setCustomerId($_SESSION['temp_customer_id']);
$response = $client->getPaymentsApi()->createPayment($pay_body);

我现在遇到的问题是,我需要使用 Nonce 令牌发出两个请求,但系统不允许我为 Square 支付网关执行此操作。不知道现在该怎么办,任何形式的帮助将不胜感激。请原谅我在这里的任何错误

解决方法

我从互联网上尝试了许多解决方案,但没有一个对我有用,所以我自己尝试逻辑。我知道这不是一个好方法,但是,它对我有用

在付款表单中,我创建了另一个隐藏字段

<input type="hidden" id="card-nonce-1" name="nonce1">

在 sq-payment-form.js 中创建一个新函数

function onGetCardNoncesecond(event) {
 event.preventDefault();
 paymentForm.requestCardNonce();
}

并将值放入隐藏字段并提交并使用它。任何建议都将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。