【发布时间】:2018-05-06 19:15:48
【问题描述】:
我正在尝试集成 PayPal 按钮,以便对我刚刚创建的新 Paypal 帐户执行简单的付款。 按照指南,我渲染了按钮,但是当我单击它并显示新窗口时,什么也没有发生。 “加载锁”一直在旋转,但新窗口和我的页面中都没有显示错误。不执行对“onError()”函数的调用。我不知道怎么了!我听从了导游的指示!
在浏览其他网站时,我看到在新窗口中,在加载(以及“加载锁”旋转)时,一些 get/post 被执行,在我的情况下没有执行任何操作。
这是我的 HTML 和相关的 .js 文件(嗯,是其中的一部分)
//THIS FUNCTION IS CALLED TO DISPLAY A NEW ELEMENT CONTAINING THE BUTTON
function payment(todelete) {
destroy(todelete);
$("#pay").delay(timeFade).fadeIn(timeFade);
paypal.Button.render({
env: 'sandbox',
client: {
sandbox: 'MYKEY',
production: 'MYKEY'
},
commit: true,
payment: function(data, actions) {
fetch("/getOldAmount").then(function(res){
return (res.json());
}).then(function(data){
var old_amount = data[0].Donation;
var amount_tot = $("#amount").val();
//BUILDING A RANDOM TEST JSON, NOT RELATED TO MY CODE
var payment_json = {
transactions: [
{
amount: {
total: '1.00',
currency: 'USD'
}
}
]
};
if(amount_tot > old_amount){
//WHEN CLICKING PAYPAL BUTTON I CAN SEE THIS LOG, SO EVERYTHING IS FINE HERE
console.log("EXECUTING PAYPAL POST");
return actions.payment.create(payment_json);
} else {
console.log("Amount too low to execute transaction");
}
});
},
onAuthorize: function(data, actions) {
return actions.payment.execute().then(function(payment) {
console.log("AUTHORIZED");
});
},
onError: function(data, actions){
console.log("ERRORRRRRR");
console.log(data);
}
}, '#paypal-button');
}
<div class="container pagination-centered" style="display: block">
<div class="form-group">
<label class="richest_header" for="amount">ENTER AMOUNT</label>
<input type="text" class="form-control amount-field" id="amount" placeholder="Amount..." name="amountField">
</div>
<div id="paypal-button"></div>
</div>
<!-- HEADER -->
[...]
<script src="https://www.paypalobjects.com/api/checkout.js">
<script type="text/javascript" src="assets/script/myscript.js"></script>
[...]
我需要做更多的事情吗? 我需要添加代码吗? 难道我做错了什么? 为什么 paypal 的文档这么差?
【问题讨论】:
-
but no errors are shown in the new window, nor in my page- 这是指浏览器 developer 工具控制台吗?即那里没有错误?您尝试过多种浏览器(Firefox、Chrome、IE、Edge 等)?所有行为都一样吗?除了在onAuthorize中解析为未定义的承诺之外,您是否需要返回其他内容? -
您是从 localhost 启动文件还是仅从 file:/// 启动文件?
-
抱歉信息太少了。我指的是每个页面的控制台、我设置按钮的页面以及 PayPal 为启动付款而创建的新窗口。我之所以指定这个是因为当我做错事(例如构建一个格式不正确的 json)时,按钮执行的调用会返回一个错误(例如 "Bad Request" ),但现在什么也没有发生。我已经尝试了所有浏览器,Firefox、Edge、Chrome 和 Internet Explorer。每次都是同样的老故事。
标签: javascript jquery html paypal express-checkout