5

新しいPaypalAPI(Adaptive Payment)を使用して支払いシステムを実装しようとしています。

これまでのところ、私はこのワークフローを持っています:

  • Paypalにリクエストを送信してください:AdaptivePayments/Pay
  • これにより、Payリクエストが作成され、3時間有効なpayKeyが返されます(ソース
  • 今、私はペイパルがIPNを通して私にリクエストを送るのを待ちます。それができるとき、私はそれでpay_keyを手に入れます
  • このpay_keyを使用してAdaptivePayments/PaymentDetails、支払いの状態を知るためにを呼び出します。

しかし、私は疑問に思っていました、それが3時間以上経過した場合、どうすればよいですか?(払い戻しのように?)

その時の確実な方法は何ですか?

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

4

1 に答える 1

11

さて、私はそれについて、そして少し読んだ後に自分自身に答えます。

を呼び出すときに指定されたpayKeyを使用する代わりにAdaptivePayments/Pay、他の解決策はtrackingIdを使用することです。

方法は次のとおりです。

最初のステップでは、を作成しAdaptivePayments/Pay、trackingIdを指定します(一意である必要があります):

{
  "actionType":"PAY",
  "currencyCode":"USD",
  "receiverList":{"receiver":[{"amount":"1.00","email":"seller_1288085303_biz@gmail.com"}]},
  "returnUrl":"http://apigee.com/console/-1/handlePaypalReturn",
  "cancelUrl":"http://apigee.com/console/-1/handlePaypalCancel?",
  "trackingId":"abcde-12345-unique-of-course",
  "ipnNotificationUrl":"http://apigee.com/console/-1/ipn",
  "requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}

それに応じて、支払いを行うために購入者をリダイレクトするpayKeyがあります。

次に、この支払いの全体的な進化について、IPN URL(ここでは「http://apigee.com/console/-1/ipn」)に通知されます。

このアドレスで(POST)リクエストを受け取ったら、paypalの有効性を確認するとtrackingId、パラメーターにが含まれます。AdaptivePayments/PaymentDetailsこのtrackingIdが存在することを確認してから、次のようにそのtrackingIdで質問します。

{
 "trackingId":"{put here}",
 "requestEnvelope":{"errorLanguage":"en_US", "detailLevel":"ReturnAll"}
}

そして、あなたは見返りにあなたの支払いの完全な詳細なステータスを持っているでしょう。

今、あなたはあなたのデータベースを更新する、あなたのバイヤーに電話するなどの仕事をします:)

私にとって何が役に立ちましたか:

于 2012-01-24T20:17:28.510 に答える