首页 文章

Paypal立即购买IPN在POST变量中返回空item_number

提问于
浏览
0

问题很简单 - 贝宝正在返回POST var item_number,但它是空白的 .

细节:

  • 客户点击立即购买,并在交易完成后转移到Paypal,然后将其发送回我的网站 .

  • 我使用通知url / page来更新数据库,但它依赖于item_number来触发正确的代码 .

  • 我知道最近对item_number1或item_number_1进行了更改,我将所有POST变量打印到临时文件(通过通知网址中的php),我看到的只是item_number,它是空白的 .

任何建议都会非常感激,因为我不是贝宝专家,而且我一直在撞墙,试图弄清楚为什么它不会给我一个 Value . 下面是一些代码片段和有用的东西......(注意我已修改了一些安全值,但没有别的)

My "Buy Now" Link = https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MYBUTTONID&lc=US&page_style=primary&item_number=PayPerCard&invoice=00000000&custom=userName

Loop for printing POST vars

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

1 回答

  • 0

    所以当然花了几个小时打猎和调试并最终发布到stackoverflow后,我在十分钟后发现了问题,这是一个非常简单的修复 . 在这里发布关于其他人可以受益的机会 .

    解决方案:不确定何时发生,但Paypal在创建托管按钮时使用标记为“项目ID”的字段 . 这是item_number,必须在此处设置,而不是像我以前那样在“立即购买”链接中设置 .

    image of PayPal fields

    将该字段设置为我想要的item_number就可以了 .

相关问题