我有一个PayPal按钮如下:
<form id="fmPaypal" method="post" action= "https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="currency_code" value="NZD">
<input type="hidden" name="business" value="blah01@yahoo.com">
<input type="hidden" name="item_name" value="Order">
<input type="hidden" id="item_number" name="item_number" value="123">
<input type="hidden" name="amount" value="0.01">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="return" value="http://www.blah.com/checkout/return.cfm" />
<input type="hidden" name="cancel_return" value="http://www.blah.com/checkout/cancel" />
</form>
这样做有效,用户可以重定向到PayPal,随时可以付款。
但是,我是否希望通过返回网址从paypal返回一些数据?例如交易结果?或者,如果用户被重定向到返回网址,我应该假设付款处理成功吗?
尝试从文档中获取此信息但未成功。
答案 0 :(得分:10)
如果您想使用return url
,则必须在表单上启用rm选项
return(可选)PayPal重定向买方浏览器的网址 他们完成付款后。例如,在您的网站上指定一个网址 显示“感谢您付款”页面的网站。默认 - PayPal将浏览器重定向到PayPal网页。 1024
rm :(可选)返回方法。用于将数据发送到的FORM FORM方法 返回变量指定的URL。允许值为:
0 - 所有购物车付款都使用GET方法
1 - 买方的 浏览器使用GET方法重定向到返回URL,但是 没有包含付款变量
2 - 买家的浏览器是 使用POST方法和所有付款重定向到返回URL 包含变量默认值为0.
注意:仅当设置了返回变量时,rm变量才会生效。
以下是IPN返回的参考文件
https://developer.paypal.com/webapps/developer/docs/classic/ipn/gs_IPN/
然后我在这里引用它以方便审查
$ item_name = $ _POST ['item_name'];
$ item_number = $ _POST ['item_number'];
$ payment_status = $ _POST ['payment_status'];
$ payment_amount = $ _POST ['mc_gross'];
$ payment_currency = $ _POST ['mc_currency'];
$ txn_id = $ _POST ['txn_id'];
$ receiver_email = $ _POST ['receiver_email'];
$ payer_email = $ _POST ['payer_email'];
你已经有了这份文件PDF,但我想我也应该把它放在这里 https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/ipnguide.pdf
因为我必须提醒您重要的事情,您必须在帐户中启用“自动退货”
默认情况下,自动返回功能已关闭。要启用自动返回:
在https://www.paypal.com登录您的PayPal帐户。我的 出现帐户概述页面。单击配置文件子选项卡。简介 出现摘要页面。点击左侧的“我的销售工具”链接 柱。在“在线销售”部分下,单击“更新”链接 网站首选项行。网站付款偏好设置页面 出现在网站付款的自动退货下,单击开启电台 按钮启用自动返回。在“返回URL”字段中,输入URL 您希望付款人在完成付款后重定向到您的付款方式 付款。注意:PayPal会检查您输入的返回URL。如果 URL格式不正确或无法验证,PayPal不会 激活自动返回。滚动到页面底部,然后单击 保存按钮。
答案 1 :(得分:2)
用户将在PayPal平台上完成或取消付款,并重定向回您的网站;
他们在用户重定向或通过即时付款通知(IPN)时完成付款。