【发布时间】:2014-08-21 04:40:12
【问题描述】:
当我执行 Paypal 付款时,我在付款的最后阶段收到错误消息。据我所知,它是正确的,我没有错误,但这就是它返回的内容:
{"body":"","headers":{"Content-Type":"application/json","Date":"2014 年 6 月 30 日星期一 18:10:56 GMT","Content-Length":" 0","PROXY_SERVER_INFO":"host=slcsbjava1.slc.paypal.com;threadId=911","Paypal-Debug-Id":"b190b1adb3748","服务器":"Apache-Coyote/1.1"},"状态“:401}这是我正在使用的代码:
execute = XHR.send('POST', 'https://api.sandbox.paypal.com/v1/payments/payment/' + ppid[0].paymentid + '/execute', {
"header": {
"Authorization": "Bearer " + auth,
"Content-Type" : "application/json"
},
"parameters": {
"payer_id": pid
}
});
console.log(execute);
我看不到 Paypal 调试的含义,我已经查过了,但大多数情况下我看到的是 PHP 问题,而不是 JS 和 cURL。
我在一篇文章中看到了将 REST API 与 Classic 混淆的帖子,但我已从 Paypal 的交互式指南中获取说明:https://devtools-paypal.com/guide/pay_paypal/curl?interactive=OFF&env=sandbox
谁能帮我解决这个问题?
更新
通过调试发现
auth是空的,所以我修复了它,现在得到一个新错误,它是:
错误:{"message":"com.mongodb.BasicDBList 不能转换为 java.util.Map","code":"0"} (@ 8 : 45) -> var innerResult = GlobalXHRInner.send(方法、url、GlobalJSON.stri
此错误会根据我发送最终标头和参数的方式而有所不同:
var newauth = "Bearer " + ppid[0].auth;
var info = {"headers": [{"Authorization": "'+newauth+'", "Content-Type" : "application/json"}], "parameters": [{"payer_id": "'+pid+'"}]};
console.log(info);
execute = XHR.send('POST', 'https://api.sandbox.paypal.com/v1/payments/payment/' + ppid[0].paymentid + '/execute', info );
console.log(execute);
response.success(execute);
如果我改变:
var info = {"headers": [{"Authorization": "'+newauth+'", "Content-Type" : "application/json"}], "parameters": [{"payer_id": "' +pid+'"}]};
对此:
var info = '{"headers": [{"Authorization": "'+newauth+'", "Content-Type" : "application/json"}], "parameters": [{"payer_id": " '+pid+'"}]}';
通过添加引号,我得到一个无效对象错误,我已使用 json 验证器检查并通过了该错误。当我按照指南进行操作时,这些错误真的让我很困惑:(
【问题讨论】:
标签: javascript paypal