通知Paypal的网址

TCM*_*TCM 46 paypal payment-gateway

Paypal成功返回我在创建立即购买按钮时指定的返回网址.但是,现在我很困惑.如何检索有关Paypal上发生的交易的详细信息?我还想在返回URL上设置一些数据库值.但我担心,如果我的用户没有支付PayPal到该网址,那么他也将成为高级会员.我如何确保这一点?

jam*_*lin 80

PayPal通过他们称之为IPN的方式将数据返回到您的网站.它实际上只是对您指定的URL的回调.您可以通过发送给PayPal 的变量notify_url设置此URL .

例:

<input name="notify_url" value="http://yourdomain.com/notify_url.php" type="hidden">
Run Code Online (Sandbox Code Playgroud)

本例中的notify_url.php在付款的时候完成,即使客户永远不会返回到您的网站贝宝上面接收一些POST变量.

PayPal返回的一些重要变量是:

  • mc_gross
  • 发票
  • settle_amount
  • protection_eligibility
  • address_status
  • payer_id
  • 街道地址
  • 付款日期
  • 支付状态
  • 字符集
  • address_zip
  • mc_shipping
  • mc_handling
  • 名字
  • mc_fee
  • address_country_code
  • 汇率
  • 地址名称
  • notify_version
  • settle_currency
  • 习惯
  • payer_status
  • 商业
  • ADDRESS_COUNTRY
  • ADDRESS_CITY
  • verify_sign
  • PAYER_EMAIL
  • txn_id
  • 支付方式

如果您设置了发票,则会退回发票.它可以用作您自己的order-id/transaction-id.

txn_id由PayPal生成,它是他们自己的交易ID.

如果您自己添加项目,PayPal也会返回num_cart_items,item_name1(item_name2,item_name3),quantity1(quantity2,quantity3)等.

更多阅读https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables

当然,您仍然需要解决问题,如何检查所有这些数据并将其连接到您自己的数据库中的客户,您可能拥有该数据.

我做的是在我将客户发送到PayPal之前保存一个临时"订单",其中发票ID,发送给PayPal的同一ID作为发票.通过这种方式,我的notify_url.php页面可以检查我的数据库中的发票ID并比较订单/付款.

  • 我一直有类似的问题.PayPal没有很好地记录IPN如何工作以及您可以返回处理的信息.最好的方法是在将用户发送到PayPal之前创建订单,并将UID附加到"Item_Number".这样我们就可以在最后使用一些东西来更新订单状态.很棒的问题和来自@jamietelin的精彩回应谢谢你们 (3认同)