在我的GWT-RPC项目中,我想在Sandbox上使用Paypal Express Checkout。我在eclipse上运行我的项目作为GWT Super Dev Mode来测试它。
使用paypal integration wizard我在服务器端添加了允许调用PayPal API的paypalfunctions.java类。在我的服务器端,我有这个AsyncCall,日志部分用于调试:
/**
* 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端点写得正确。 我不知道如何解决它。非常感谢!
答案 0 :(得分:2)
有时人们会将API USERNAME和API PASSWORD与普通的paypal用户名和密码相同,这也导致错误10002。
例如,您可能提供了API USERNAME,但错误的是您在SetExpressCheckout API调用中提供了常规密码。
在沙盒模式下,点击“paypal-buyer@****.***”帐户记录下方的“个人资料”链接后,API密码会在“API凭据”标签下给出。
答案 1 :(得分:1)
除非凭据在某种程度上是错误的,否则不会发生该错误。它可能是值本身,也可能是您将沙箱凭据发送到实时服务器或反之亦然。
如果您完全确定这些值本身是正确的,请确保使用正确的值并使用正确的端点。
答案 2 :(得分:0)
最后,我没有以这种方式解决。我用了paypal sdk merchant 为了理解如何使用它,我使用了非常有用的伟大API Explorer Paypal来了解sdk的设置对象和设置对象。在how's to我已经看到了我需要设置的sdk对象。我建议这种方式使用API Paypal