沙盒上使用的java Paypal Express签出,安全标头无效,API凭据中没有错误
在我的GWT-RPC项目中,我想在沙箱上使用Paypal Express签出。我在eclipse上以GWT超级开发模式运行我的项目来测试它
我使用paypal integration wizard在服务器端添加了paypalfunctions.java类,该类允许调用PayPal API。在我的服务器端,我有一个异步调用,日志部分用于调试:
/**
* PayPal Operations
*/
@SuppressWarnings("rawtypes")
public HashMap setCheckoutExpress(DatiPaypalCheckoutExpress paypal){
paypalfunctions api=new paypalfunctions();
HashMap response=api.CallMarkExpressCheckout(((Double) paypal.getTOT()).toString(),
"http://127.0.0.1:8888/MovieUniverse.html#order_confirmed",
"http://127.0.0.1:8888/MovieUniverse.html#order_cancelled",
"", "", "", "", "",
"", "", "");
// response=api.CallShortcutExpressCheckout("10.00",
// "http://127.0.0.1:8888/MovieUniverse.html#order_confirmed",
// "http://127.0.0.1:8888/MovieUniverse.html#order_cancelled");
if(response!=null){
GWT.log("Server: setCheckoutExpress() HashMap: "+response.toString());
}else
GWT.log("Server: setCheckoutExpress() HashMap: null");
return response;
}
注释部分CallShortcutExpressCheckout可以正常工作。但当我使用CallMarkExpressCheckout时,我会收到响应
{L_LONGMESSAGE0=Security header is not valid, VERSION=93, BUILD=17329237, L_ERRORCODE0=10002, ACK=Failure, CORRELATIONID=9ce80c51dc8a5, TIMESTAMP=2015-07-09T16:25:14Z, L_SEVERITYCODE0=Error, L_SHORTMESSAGE0=Security error}
API凭证中没有空格,示例方法可以正常工作,因此paypal端点编写正确。 我不知道怎么解决它。非常感谢
# 1 楼答案
有时人们会将API用户名和API密码与同一paypal帐户的常规paypal用户名和密码混淆,这也会导致错误10002
例如,您可能提供了API用户名,但在SetExpressCheckout API调用中错误地提供了常规密码
在沙盒模式下,点击“paypal买家@********”账户记录下的“配置文件”链接后,“API凭证”选项卡下会给出API密码
# 2 楼答案
除非凭证以某种方式出错,否则不会发生该错误。可能是这些值本身,也可能是您正在向live server发送沙盒凭据,或者反之亦然
如果您完全确定这些值本身是正确的,请确保在正确的端点上使用了正确的值
# 3 楼答案
最后,我没有以那种方式下决心。我用了paypal sdk merchant 为了理解如何使用它,我使用了伟大的API Explorer Paypal,这对于理解sdk的哪些对象以及如何设置对象非常有用。在how's to上,我看到了需要设置的sdk对象。我建议这样使用API Paypal