我通过以下参数成功地从Paypal IPN获得了回报,但是没有一个参数告诉我哪个订单可以找到并更新 . 可能有用的唯一可能参数是payer_id,payer_email,mc_gross,但是如果一个付款人购买相同数量的相同商品怎么办?当我设置Paypal请求时,我应该有一些像令牌这样的独特之处 . 我保留了令牌,我可以在事务完成时使用它来查找订单并返回到return_url,但是当IPN通知我的notify_url时我没有任何匹配 . 请帮忙,谢谢 .
顺便说一句,我正在使用宝石调用paypal-express在轨道上使用红宝石,这是完美的 .
# Parameters: {"mc_gross"=>"200",
# "protection_eligibility"=>"Ineligible",
# "item_number1"=>"",
# "payer_id"=>"JBZXYGAAHTZM2",
# "tax"=>"0",
# "payment_date"=>"08:32:00 Jan 23, 2014 PST",
# "payment_status"=>"Pending",
# "charset"=>"windows-1252",
# "mc_shipping"=>"0",
# "mc_handling"=>"0",
# "first_name"=>"cc",
# "notify_version"=>"3.7",
# "custom"=>"",
# "payer_status"=>"verified",
# "num_cart_items"=>"1",
# "mc_handling1"=>"0",
# "verify_sign"=>"AFcWxV21C7fd0v3bYYYRCpSSRl31Am7YqqMX.kAbxBd9q1REIIsXe8T3",
# "payer_email"=>"test@inow.tw",
# "mc_shipping1"=>"0",
# "tax1"=>"0",
# "txn_id"=>"6SC87240NB740832W",
# "payment_type"=>"instant",
# "payer_business_name"=>"cc Tester's Test Store",
# "last_name"=>"Tester",
# "item_name1"=>"\u001A\u001A\u001A",
# "receiver_email"=>"jasper01@abcd.com",
# "quantity1"=>"1",
# "receiver_id"=>"3FBXQZPB9QZ9U",
# "pending_reason"=>"multi_currency",
# "txn_type"=>"cart",
# "mc_gross_1"=>"200",
# "mc_currency"=>"TWD",
# "residence_country"=>"AU",
# "test_ipn"=>"1",
# "transaction_subject"=>"Japser Paypal\u001A\u001A",
# "payment_gross"=>"",
# "ipn_track_id"=>"58f7731e250a9"}
1 回答
您可以在付款信息中包含发票ID,以便跟踪内部发票(或记录)ID . 然后将在IPN中传回,以便您可以使用它来相应地更新数据库 .
您使用的是PayPal购物车还是使用某种定制购物车?如果您正在使用Payments Standard,则只需将“invoice”参数添加到HTML表单代码中即可 . 如果您正在使用API,那么它将是INVNUM字段(无论如何,在大多数情况下) .