0

我正在建立一家书店,并且正在使用 PayPal Payflow 建立结帐。这是结帐流程:

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

  1. 送货信息:填写送货地址,这里没什么特别的

  2. 帐单信息:填写您的帐单地址 + 信用卡信息。不要保存信用卡信息,因为它不符合标准,而只需将 CC 编号、到期日期和 CVV 直接发送到 PayPal 进行验证。贝宝批准。

  3. 订单摘要:订单在提交订单之前会看到他的订单摘要。他按下提交,然后向 PayPal 发送另一个请求以授权资金。

但是,CC 信息在 #2 之后消失了,那么我如何将该数据保存到 #3 以便我可以再次将其发送到 PayPal?

我可以只使用 ORIGID 指向 PNREF 吗?文档说我必须对整个参数列表(包括 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 回答