【问题标题】:Paypal IPN doesn't tell me my order infoPaypal IPN 没有告诉我我的订单信息
【发布时间】:2014-02-14 10:32:27
【问题描述】:

我使用以下参数成功地从 Paypal IPN 获得了退货,但是没有一个参数告诉我可以找到和更新哪个订单。唯一可能有用的参数是 payer_id、payer_email、mc_gross,但是如果一个付款人以相同的金额购买相同的商品怎么办?我应该有一些独特的东西,比如当我设置对 Paypal 的请求时生成的令牌。我保留了令牌,我可以在交易完成时使用它来查找订单并返回到 return_url,但是当 IPN 通知我的 notify_url 时我没有任何匹配项。请帮忙,谢谢。

顺便说一句,我正在使用 ruby​​ on rails 和 gem call 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"}

【问题讨论】:

    标签: ruby-on-rails paypal paypal-ipn


    【解决方案1】:

    您可以在付款信息中包含一个发票 ID,用于跟踪您的内部发票(或记录)ID。然后将在 IPN 中传回,以便您可以使用它来相应地更新您的数据库。

    您是在使用 PayPal 购物车还是在使用某种自定义购物车?如果您使用的是 Payments Standard,您只需将“invoice”参数添加到您的 HTML 表单代码中。如果您正在使用 API,它将是 INVNUM 字段(无论如何,在大多数情况下)。

    【讨论】:

    • 谢谢。我正在使用贝宝生成的帐户、密码和签名进行即时支付。我认为有一个解决方案可能有效,即使用 payer_id 作为密钥并找到该特定付款人的最后一笔交易,但我会尝试您的建议,谢谢。
    • 我正在使用 SetExpressCheckout API 操作 (NVP),但从 api (developer.paypal.com/docs/classic/api/merchant/…) 我没有找到任何可以包含发票的自定义字段,有些字段看起来很有希望,但它们全部弃用。
    • 应该是 PAYMENTREQUEST_n_INVNUM,其中 n 是付款次数,因为 Express Checkout 可以在一次结帐中包含多笔交易。不过,您需要确保将其也包含在 DoExpressCheckoutPayment 中。
    猜你喜欢
    • 2011-03-10
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2011-10-31
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多