0

私は書店を構築しており、PayPal Payflow を使用してチェックアウトを構築しています。これはチェックアウト フローです。

Shipping info --> Billing info |verify CC using Paypal| --> Order summary --> Submit |authorize CC using Paypal|

  1. 配送情報: 配送先住所を記入します。ここには特別なものはありません

  2. 請求先情報: 請求先住所とクレジット カード情報を入力します。標準に違反しているため、クレジット カード情報を保存しないでください。代わりに、CC 番号、有効期限、および CVV を PayPal に直接送信して確認してください。PayPal が承認します。

  3. 注文の概要: 注文は、注文を送信する前に注文の概要を確認します。彼が [送信] を押すと、資金を承認するための別の要求が PayPal に送信されます。

ただし、CC 情報は #2 の後に消えるので、そのデータを #3 に保持して、再度 PayPal に送信できるようにするにはどうすればよいでしょうか?

ORIGID を使用して PNREF を指すことはできますか? ドキュメントには、params リスト全体 (CC 情報、CVV、有効期限などを含む) を使用して完全なリクエストを行う必要があると記載されています。

TRXTYPE=A&TENDER=C&PWD=x1y2z3&PARTNER=PayPal&VENDOR=SuperMerchant&USER=S uperMerchant&ACCT=5555555555554444&EXPDATE=0308&AMT=123.00&COMMENT1=Seco nd purchase&COMMENT2=Low risk customer&INVNUM=123456789&STREET=5199 MAPLE&ZIP=94588

それとも、承認の意味を誤解しているだけですか? オーソリゼーションは実際にユーザーの CC に資金を留保していませんか? ユーザーが注文の送信を押すまで、それは行われるべきではありませんか?

4

1 に答える 1

0

私はそれを考え出した。

ドキュメントはこちら: https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_guide.pdf

40 ページで簡単に説明されていますが、このチェックアウト フローについてはあまり詳しく説明されていません。

最初にすべての CC 情報を使用してアドレス検証リクエストを実行し、返された PNREF を使用できるという点で、私の仮定は正しかった。セッションに PNREF ID を保存し、それを再利用して次のようなリクエストを送信します。

def authorize_transaction(pnref)
  make_request(authorization_data(pnref))
end

def authorization_data(pnref)
  {
     "TRXTYPE" => "A",
     "TENDER" => "C",
     "USER" => PAYPAL_API["user"],
     "PWD" => PAYPAL_API["pwd"],
     "VENDOR" => PAYPAL_API["user"],
     "PARTNER" => "Paypal",
     "AMT" => purchase.total_price,
     "ORIGID" => pnref,
     "VERBOSITY" => "HIGH"
   }
end

そして、望ましい応答を受け取ります:

{"RESULT"=>"0", "PNREF"=>"A10A6A9C08E1", "RESPMSG"=>"承認済み", "AUTHCODE"=>"752PNI", "AVSADDR"=>"Y", "AVSZIP"= >"Y", "HOSTCODE"=>"A", "PROCAVS"=>"Y", "VISACARDLEVEL"=>"12", "TRANSTIME"=>"2014-01-31 11:53:56", "FIRSTNAME"=>"net", "LASTNAME"=>"theory", "AMT"=>"15.64", "ACCT"=>"1111", "EXPDATE"=>"0115", "CARDTYPE"=> "0", "IAVS"=>"N"}

于 2014-01-31T19:58:53.427 に答える