0

Paypal との統合が必要なモバイル アプリケーションを開発しました。バック エンド サーバーは RESTfull Java サーバーです。したがって、paypal と統合するために、クライアント エンドから「deviceReferenceTokenWithAppId」を取得し、他の詳細 (cartId..etc) と共にバックエンド サーバーでサーブレットを呼び出します。モバイル決済に必要な特定の「SetExpressCheckout」トークンを取得します。

StringBuilder postData = new StringBuilder();
        postData.append(USER).append("=").append(Constants.PAYPAL_MERCHANT_USER);
        postData.append("&").append(PASSWORD).append("=").append(Constants.PAYPAL_MERCHANT_PASSWORD);
        postData.append("&").append(SIGNATURE).append("=").append(Constants.PAYPAL_MERCHANT_SIGNATURE);
        postData.append("&").append(METHOD).append("=").append("SetExpressCheckout");
        postData.append("&").append(VERSION).append("=").append("88");
        postData.append("&").append(AMOUNT).append("=").append(amount.toString());
        postData.append("&").append(CANCEL_URL).append("=").append(Constants.PAYPAL_MERCHANT_CANCEL_URL);
        postData.append("&").append(RETURN_URL).append("=").append(Constants.PAYPAL_MERCHANT_RETURN_URL);
        byte[] postDataArr = postData.toString().getBytes(UTF-8);
        // Hit the the URL.

        URL url = new URL("https://api-3t.sandbox.paypal.com/nvp");
        HttpsURLConnection.setDefaultHostnameVerifier(new CustomizedHostnameVerifier());
        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setUseCaches(false);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
        conn.setRequestProperty("Content-Length", Integer.toString(postDataArr.length));


        DataOutputStream output = new DataOutputStream( conn.getOutputStream());
        output.write( postDataArr );
        output.flush();
        output.close ();

        rc = conn.getResponseCode();

私の問題は、paypal nvp を呼び出すと、応答として有効なトークンが得られず、代わりに次のエラーが発生することです。

Key - TIMESTAMP - value : 2012-06-11T18:16:02Z
 Key - CORRELATIONID - value : 207108cab758a
 Key - ACK - value : Failure
 Key - VERSION - value : 88
 Key - BUILD - value : 2975009
 Key - L_ERRORCODE0 - value : 10002
 Key - L_SHORTMESSAGE0 - value : Security error
 Key - L_LONGMESSAGE0 - value : Security header is not valid
 Key - L_SEVERITYCODE0 - value : Error

なぜこのエラーが発生するのか誰か教えてもらえますか? ここで何か見逃しましたか?

TOKEN を正常に取得できたら、次にサーブレット応答を次の URL にリダイレクトして、モバイル チェックアウト ビューをモバイル アプリケーションに取得する必要があります。

https://www.sandbox.paypal.com/webscr?cmd=_express-checkout-mobile&drt="+<deviceReferenceTokenWithAppId>+"&token="+<TOKEN from payal nvp>

ここで間違いを犯した場合、誰かが私を正しい道に導くことができれば感謝します..

4

1 に答える 1

0

これは、アクセスしているエンドポイントの API 資格情報が正しくないことを意味します。
「PASSWORD」を「PWD」に置き換えてみてください。認証は、PayPal の「USER」、「PWD」、および「SIGNATURE」で行われます。

于 2012-06-12T12:32:30.447 に答える