5

エクスプレス チェックアウトに PayPal と NVP API (PHP を使用) を使用しています。ユーザーを Paypal にリダイレクトする前に、データベースに請求書レコードを作成しています。処理後にユーザーがサイトに戻らない場合に備えて、IPN を使用して購入を確認し、支払いが確認されたことを示す請求書レコードを更新しています。私はまだサンドボックス モードにあり、NVP で開始されたトランザクションを IPN で取得した確認に結び付ける方法を理解しようとしています。

NVP で送信された「PAYMENTREQUEST_n_INVNUM」が IPN ポストで「請求書」として戻ってくるかどうかを確認する必要があります。

NVP が開始したサンドボックス トランザクションでサンドボックス IPN がアクティブになっていないように見えるため、ライブになるまでこれを実際にテストできないようです - これは正しいですか?

ご協力いただきありがとうございます。

4

2 に答える 2

6

これは Sandbox でテストできます。しかし、「PayPal NVP」を使用している場合は、PayPal Express Checkout を使用してSetExpressCheckoutDoExpressCheckoutPaymentAPI を呼び出していると思います。
その場合、トランザクションは を呼び出すとすぐに完了するため、IPN は実際には必要ありませんDoExpressCheckoutPayment

つまり、購入者は常にで指定した RETURNURL にリダイレクトされ、この返品ページで SetExpressCheckout呼び出した時点でトランザクションが完了します (または完了しません) 。DoExpressCheckoutPayment

請求書番号を取得するには、GetExpressCheckoutDetails先ほど取得した TOKEN を呼び出して指定します (RETURNURL の GET にも追加されます)。

最後にPAYMENTSTATUS=CompletedDoExpressCheckoutPaymentAPI 応答をチェックインして、トランザクションが完了したかどうかを確認します。

于 2011-12-19T21:48:21.333 に答える
0

プロセスを明確にしてくれたRobertに感謝します-特にuseraction=commit。

私はついに、テスト販売者のサンドボックスでIPNをオンにして、IPNを使用してNVPを一緒にテストできることに気付きました。PAYMENTREQUEST_0_INVNUMがIPNPOSTの「INVOICE」パラメーターと一致することを確認できました。

顧客が別の電子メールを使用してペイパルにログインする場合に備えて、カスタムフィールドを使用して、システムから顧客の電子メールを渡します。これにより、確認のために電子メールと請求書の番号のペアを使用できます。

于 2011-12-20T20:55:36.000 に答える