Paypal Buy Now IPN在POST变量中返回空item_number



简而言之,问题是Paypal返回POST var item_number,但它是空的。

详细信息:

  • 客户点击"立即购买",然后被转移到Paypal,在那里交易完成,然后他们被送回我的网站
  • 我使用通知url/page来更新数据库,但它依赖于item_number来触发正确的代码
  • 我知道最近对item_number1或item_number_1进行了更改,我在其他一些问题中看到了这些更改,但我正在将所有POST变量打印到一个临时文件中(通过通知url中的php),我看到的只是item_number,它是空的

任何建议都将不胜感激,因为我不是Paypal专家,我一直在拼命想为什么它没有给我回一个值。下面是一些代码片段和有用的东西。。。(注意,为了安全起见,我修改了一些值,但没有修改其他值)

我的"立即购买"链接=https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MYBUTTONID&lc=US&page_ style=primary&item_number=支付卡&发票=00000000&custom=userName

打印POST变量的循环

foreach ($_POST as $key => $value) {
$data.= $key.'='.$value.'n';}

每次事务完成时,$data都会打印到临时文件中

$data=

transaction_subject=
payment_date=17:25:25 Oct 16, 2017 PDT
txn_type=web_accept
last_name=McDougal
receipt_id=0000-0000-0000-0000
residence_country=US
item_name=Buy & Send
payment_gross=1.50
mc_currency=USD
business=sales@mydomain.com
payment_type=instant
protection_eligibility=Ineligible
verify_sign=BIGLONGSTRING
payer_status=unverified
payer_email=customer@gmail.com
txn_id=BIGLONGSTRING
quantity=1
receiver_email=sales@mydomain.com
first_name=Sticky
invoice=00000000
payer_id=0000000000000
receiver_id=0000000000000
item_number=
payment_status=Completed
payment_fee=0.37
mc_fee=0.37
mc_gross=1.50
custom=userName
charset=windows-1252
notify_version=3.8
ipn_track_id=0000000000000

当然,在花了几个小时寻找和调试并最终发布到stackoverflow之后,我在十分钟后发现了这个问题,这是一个非常容易的解决方案。在这里发帖,其他人可能会从中受益。

解决方案:不确定是什么时候发生的,但Paypal在创建托管按钮时会使用一个标记为"项目ID"的字段。这是item_number,它必须在这里设置,而不是像我以前那样在"立即购买"链接中设置。

PayPal字段的图像

将该字段设置为我想要的item_number就成功了。

相关内容

最新更新