質問

いIPNコールバック関数を使用servlet.このコードを使用していを提供することがあります。を検証するipnデータです。それでも毎回たく 無効 に応じます。

こちらのコード:

Enumeration en = req.getParameterNames();
String str = "cmd=_notify-validate";

    while (en.hasMoreElements()) {        
        String paramName = (String) en.nextElement();
        String paramValue = req.getParameter(paramName);

//str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"UTF-8"); // for UTF-8 i set the encode format in my account as UTF-8
//str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"ISO-8859-1");// for ISO-8859-1 i set the encode format in my account as ISO-8859-1
str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue); //default as provided by paypal

    }
    URL u = new URL("http://www.sandbox.paypal.com/cgi-bin/webscr");
    URLConnection uc = u.openConnection();
    uc.setDoOutput(true);
    uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    PrintWriter pw = new PrintWriter(uc.getOutputStream());
    pw.println(str);
    pw.close();

    BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
    String res = in.readLine();
    in.close();

    if (res.equals("VERIFIED") || !res.equals("VERIFIED")) {
        //Update database...
    } else if (res.equals("INVALID")) {      
       //INVALID   
    }

って全ての可能性を提供することがあります。場合にはpaypalを返し無効として

1)欠損パラメータとして、私がお送りすべてのパラメータのお手伝いをさせてください欠パラメータ

2)では無効。-を使用してい砂でURL: http://www.sandbox.paypal.com/cgi-bin/webscr

3)文字エンコーディングです。 をしたときは、文字エンコードとpaypalアカウント設定パラメータのエンコーディングです。

の要請を送りたいと思い戻paypalを使用し、以下のパラメータ:

cmd=_notify-validate&last_name=User&test_ipn=1&address_name=Test+User&txn_type=web_accept&receiver_email=sellr1_1252495907_biz%40gmail.com&residence_country=US&address_city=San+Jose&payment_gross=&payment_date=01%3A55%3A04+Sep+26%2C+2009+PDT&address_zip=95131&payment_status=Completed&address_street=1+Main+St&first_name=Test&payer_email=buyer1_1252495751_per%40gmail.com&protection_eligibility=Eligible&payer_id=BXBKS22JQCUWL&verify_sign=AOMkeg7ofCL7FJfioyWA19uCxD4XAgZirsjigh8cuy1fd2yaqbwokkst&payment_type=instant&business=sellr1_1252495907_biz%40gmail.com&address_country_code=US&mc_fee=0.64&address_status=confirmed&transaction_subject=True+Up&quantity=1ify_version=2.8&mc_currency=EUR&custom=&address_state=CA&payment_fee=&handling_amount=0.00&payer_status=verified&shipping=0.00&item_name=True+Up&tax=0.00&username=hannonj&charset=windows-1252&item_number=567&mc_gross=10.00&txn_id=7F456350BS7942738&receiver_id=MASSU6BSR9SC2&address_country=United+States

くださいできずに直接私には適切な方向になっていますか?私はなく何が間違っているコードまたはURLいただけます。またすべての可能性が広がる。力を貸してください。

役に立ちましたか?

解決 3

ん応答が返されます。思い解決されることになったのです。

実際に通知URLいものユーザー名パラメータとします。Paypalといったパラメータ値IPNとして返しますをリストアップされます。(できるとしてreq.getParameterNames()).してしまったのユーザー名パラメータの追加、あまり知られていません。Paypalを戻無効となります。

他のヒント

に"無効"メッセージは、下記の理由により:

  • ることを確認してい 投稿への対応は、正しいURL, である https://www.sandbox.paypal.com/cgi-bin/webscr または https://www.paypal.com/cgi-bin/webscr, によっては、しているかどうかの試験のサンドボックスまたはライブです。
  • になっていることを確認します対応の試験IPNメッセージ を含む同じ変数値 としての試験メッセージ それと同一の順番としての試験メッセージ.最後に、確認、変数の先行cmd=_notify-検証可変となります。
  • ようにしましょう エンコード ご応答文字列と同じ文字エンコーディングとして使われている試験IPNメッセージ。(例えば、私たは文字umlautおよびその他の記号のように"/"など)を指定します。について最終ポイントは、商み符号を変更使用言語は彼のPayPal口座以下の手順に従

    1. ログインすPayPalアカウント
    2. をクリックしプロフィール
    3. クリックし"セール設定"タブ
    4. "をクリックしPayPalのボタンで言語エンコーディング"のページ)
    5. をクリック"その他のオプション"
    6. から選択ドロップダウンメニュー:UTF-8
    7. 選択と同じ文字セットの次のオプションに関するIPN
    8. "保存"ボタンをクリックします"

場合に問題が続くようお勧めいたします。見直し、スクリプトを使用PayPalは、一部のIPNコードサンプル: https://github.com/paypal/ipn-code-samples

追加情報のリンク: https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNTesting/#id091GFE00WY4

またまた、URLをお送りするだけで"www.sandbox.paypal.com"は、第4章ではのサンドボックスユーザーガイド、およびこれは伸びるこれはすごいえっけのために自分のコード(ちなみに、ライブでは、まさに"www.paypal.com"、 サンプルコード)

ばね試験Paypal IPN over SSLを使 ssl://www.出来上がります。paypalがご利用頂けます。com のポート 443

覚えていpaypalのサンドボックスは、完全に異なる情報。すべての開発やログイン開発に力を入れてパネルを利用出来上がります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top