Link Paypal 按钮(客户端)到服务器响应(PHP)与 ajax
Link Paypal-Buttons (client) to Server-Response (PHP) with ajax
我想在我的网站上使用 Paypal,所以我正在按照教程 here 进行操作。
到目前为止一切正常:使用 composer 下载了 SDK。创建了 class PayPalClient
和 CreateOrder
.
在教程的这一部分结束时,CreateOrder
的结果需要使用 javascript:
链接到按钮
<script>
paypal.Buttons({
createOrder: function() {
return fetch('test_paypal_create_paypal_transaction.php', {
method: 'post',
headers: {
'content-type': 'application/json'
}
}).then(function(res) {
return res.json();
}).then(function(data) {
return data.orderID;
});
},
onApprove: function(data, actions) {
// This function captures the funds from the transaction.
return actions.order.capture().then(function(details) {
// This function shows a transaction success message to your buyer.
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
}).render('#paypal-button-container');
//This function displays Smart Payment Buttons on your web page.
</script>
这是 php 文件 (test_paypal_create_paypal_transaction.php
):
require __DIR__ . '/../../vendor/autoload.php';
use MyProject\PayPay\CreateOrder;
$response = CreateOrder::createOrder(false);
echo json_encode($response);
class CreateOrder
工作正常。我可以输出来自贝宝的回复。这个问题似乎不存在。
当我按下 Paypal 按钮时,我还可以在 Firefox-Dev-Tools 中看到 XHR-Request 已正确完成。还有一个返回按钮的 XHR 响应。但似乎我使用了错误的格式或错误的数据部分,返回到 fetch()
-Function.
有什么想法吗?
感谢帮助!!!
蒂姆
好的,我找到了解决方案。
这个:
[...]
}).then(function(data) {
return data.orderID;
});
[...]
需要替换为:
[...]
}).then(function(data) {
return data.result.id;
});
[...]
我想在我的网站上使用 Paypal,所以我正在按照教程 here 进行操作。
到目前为止一切正常:使用 composer 下载了 SDK。创建了 class PayPalClient
和 CreateOrder
.
在教程的这一部分结束时,CreateOrder
的结果需要使用 javascript:
<script>
paypal.Buttons({
createOrder: function() {
return fetch('test_paypal_create_paypal_transaction.php', {
method: 'post',
headers: {
'content-type': 'application/json'
}
}).then(function(res) {
return res.json();
}).then(function(data) {
return data.orderID;
});
},
onApprove: function(data, actions) {
// This function captures the funds from the transaction.
return actions.order.capture().then(function(details) {
// This function shows a transaction success message to your buyer.
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
}).render('#paypal-button-container');
//This function displays Smart Payment Buttons on your web page.
</script>
这是 php 文件 (test_paypal_create_paypal_transaction.php
):
require __DIR__ . '/../../vendor/autoload.php';
use MyProject\PayPay\CreateOrder;
$response = CreateOrder::createOrder(false);
echo json_encode($response);
class CreateOrder
工作正常。我可以输出来自贝宝的回复。这个问题似乎不存在。
当我按下 Paypal 按钮时,我还可以在 Firefox-Dev-Tools 中看到 XHR-Request 已正确完成。还有一个返回按钮的 XHR 响应。但似乎我使用了错误的格式或错误的数据部分,返回到 fetch()
-Function.
有什么想法吗?
感谢帮助!!!
蒂姆
好的,我找到了解决方案。
这个:
[...]
}).then(function(data) {
return data.orderID;
});
[...]
需要替换为:
[...]
}).then(function(data) {
return data.result.id;
});
[...]