在 Sandbox 上使用 Paypal Express Checkout,安全 header 无效,API 凭证中没有错误

Paypal Express Checkout used on Sandbox, Security header is not valid, no error in API credential

在我的 GWT-RPC 项目中,我想在 Sandbox 上使用 Paypal Express Checkout。我 运行 我在 eclipse 上的项目作为 GWT Super Dev Mode 来测试它。

在我的服务器端使用允许调用 PayPal API 的 paypal integration wizard I've added the paypalfunctions.java class。在我的 server-side 上我有这个 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 端点。 我不知道如何解决它。非常感谢!

除非凭据在某些方面有误,否则不会发生该错误。它可能是值本身,也可能是您正在将沙箱凭据发送到实时服务器或反之亦然。

如果您绝对确定这些值本身是正确的,请确保您使用的是具有正确端点的正确值。

最后我没有那样解决。我用了 paypal sdk merchant 并了解如何使用它,我使用了很棒的 API Explorer Paypal that is very useful to understand which and how set objects of sdk. On the how's to 我已经看到我需要设置什么 sdk 的对象。我建议这种方式使用 API Paypal

有时人们会将 API USERNAME 和 API PASSWORD 与同一 paypal 帐户的常规 paypal 用户名和密码混淆,这也会导致错误 10002。

例如,您可能提供了 API USERNAME,但您在 SetExpressCheckout API 调用中错误地提供了常规密码。

在沙盒模式下 API 单击 "paypal-buyer@****.***" 帐户记录下方的 "profile" link 后,"API Credentials" 选项卡下会给出密码。