javascript - 在 Paypal Javascript 上创建订单时出现问题
问题描述
当脚本调用在页面 HTML/javascript 中创建订单时出现问题。
在控制台中,我有一个错误“期望将字符串订单 ID 传递给 createOrder”。
我给我的代码 HTML/javascript
<html >
<body>
<div id="bouton-paypal"></div>
<script src="https://www.paypal.com/sdk/js?client-id=monid"></script>
<script>
paypal.Buttons({
// Set up the transaction
createOrder: function() {
var SETEC_URL = 'http://localhost/paypalphp/paypalcreatepayment.php';
return fetch(SETEC_URL, {
method: 'post',
headers: {
'content-type': 'application/json'
}
}).then(function(res) {
return res.json();
}).then(function(data) {
return data.token;
});
}
}).render('#bouton-paypal');
解决方案
感谢您的回复。我喜欢这个问题的解决方案
<script>
paypal.Buttons({
style: {
layout: 'vertical',
color: 'blue',
shape: 'rect',
label: 'paypal'
},
// Set up the transaction
createOrder: function() {
var SETEC_URL = 'http://localhost/paypalphp/paypalcreatepayment.php';
return fetch(SETEC_URL, {
method: 'post',
headers: {
'content-type': 'application/json'
}
}).then(function(res) {
return res.json();
}).then(function(data) {
let token;
token = data.paypal_response.links[1].href.match(/EC-\w+/)[0];
console.log(token);
return token;
});
},
// Finalize the transaction
onApprove: function(data) { // On indique le chemin vers notre script PHP qui se chargera d'exécuter le paiement (appelé après approbation de l'utilisateur côté client).
var EXECUTE_URL = 'http://localhost/paypalphp/paypalexecutepayment2.php?payerID='+data.payerID+'&paymentID='+data.paymentID;
/*var data = {
paymentID: data.paymentID,
payerID: data.payerID
};*/
console.log(data);
return fetch(EXECUTE_URL, {
method: 'post',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
token: data.orderID,
payerID: data.payerID,
paymentID: data.paymentID
})
});
},
onCancel: function(data, actions) {
alert("Paiement annulé : vous avez fermé la fenêtre de paiement.");
},
onError: function(err) {
alert("Paiement annulé : une erreur est survenue. Merci de bien vouloir réessayer ultérieurement.");
}
}).render('#bouton-paypal');
</script>
推荐阅读
- maven - VSCode - Maven.archetype.generate 失败
- android - Android Studio 看起来不合适
- php - 使用 Xdebug 和 PhpStorm 找不到 Symfony ContainerAwareCommand
- mysql - MySQL - 如何选择日期时间字段不等于 0000-00-00 00:00:00 的行?
- mysql - MySQL XAMPP 总是打开一个网络命令弹出窗口
- r - 在地图函数中使用条件改变多个列
- java - Java 8 Stream,由于几个条件而获取字符串长度
- ssl - 在 JBoss EAP 6.4 中禁用主机名验证
- reactjs - 属性...在类型“IntrinsicAttributes & ...”上不存在
- c# - HttpResponse.TransmitFile 方法(但对于多个文件)?