Sandbox使用的Paypal Express Checkout,安全标头无效,API凭证没有错误

时间:2015-07-09 16:44:18

标签: java paypal paypal-sandbox gwt-rpc express-checkout

在我的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端点写得正确。 我不知道如何解决它。非常感谢!

3 个答案:

答案 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