在 Paypal 中完成购买后重定向到原始站点
Posted
技术标签:
【中文标题】在 Paypal 中完成购买后重定向到原始站点【英文标题】:Redirection to the original site after purchase is completed in Paypal 【发布时间】:2012-07-17 04:40:12 【问题描述】:我正在制作一个网络应用程序。我使用简单的表单提交到 Paypal 站点,将 Paypal 集成到其中。一切正常。但每当付款成功时,它应该使用 Paypal 的响应重定向回我的原始网站。但是,它没有按应有的方式工作。目前它仅保留在 Paypal 网站上。
<form action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post' name='form'>
<input type='hidden' name='business' value='<?php echo $paypal_id; ?>'>
<input type='hidden' name='cmd' value='_xclick'>
<input type='hidden' name='item_name' id='item_name' value=''>
<input type='hidden' name='item_number' id='item_number' value=''>
<input type='hidden' name='amount' id='amount' value=''>
<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='cancel_return' value='http://yoursite.com/cancel.php'>
<input type='hidden' name='return' value='http://mysite.com/user_credits/purchase_credits'>
<input type="image" src="https://paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" name="submit">
我错过了什么?我正在使用 CakePHP 2.0。
【问题讨论】:
【参考方案1】:您必须在 paypal 中启用自动退货功能设置。
只需按照以下步骤启用
-
登录并单击“我的帐户”下的“个人资料”子选项卡。
点击销售偏好下的网站支付偏好链接。
单击打开单选按钮以启用自动返回。
输入返回 URL。注意:您必须满足退货 URL 要求才能设置自动退货。详细了解返回 URL。
对于沙盒帐户,请执行以下操作
-
登录沙盒商户 ID,然后单击“我的帐户”下的“个人资料”子选项卡。
单击配置文件下的更多选项链接。
查看第三行的销售偏好。
点击销售偏好下的网站支付偏好链接
单击打开单选按钮以启用自动返回。
单击打开单选按钮以启用自动返回。
输入返回 URL。注意:您必须满足退货 URL 要求才能设置自动退货。详细了解返回 URL。
【讨论】:
我正在使用 Sandbox 帐户进行 Paypal 测试。我在我的帐户中找不到上述链接。 现在我也添加了 Sanbox 帐户的步骤...看看那个【参考方案2】:根据the spec的支付宝按钮参数,需要设置返回方式。
<input type='hidden' name='return' value='http://mysite.com/user_credits/purchase_credits'>
<input type='hidden' name='rm' value='1'>
取值如下:
0
- 不要重定向,使用 GET。
1
- 使用 GET 自动重定向到 return
URL。
2
- 使用 POST 自动重定向到 return
URL,包括所有支付变量。
【讨论】:
【参考方案3】:要实现 PayPal 按钮 html 表单参数,请使用此
<form method=post action=https://api-3t.sandbox.paypal.com/nvp>
<input type=hidden name=USER value=API_username>
<input type=hidden name=PWD value=API_password>
<input type=hidden name=SIGNATURE value=API_signature>
<input type=hidden name=VERSION value=XX.0>
<input type=hidden name=PAYMENTREQUEST_0_PAYMENTACTION value=Sale>
<input name=PAYMENTREQUEST_0_AMT value=19.95>
<input type=hidden name=RETURNURL value=https://www.YourReturnURL.com>
<input type=hidden name=CANCELURL value=https://www.YourCancelURL.com>
<input type=submit name=METHOD value=SetExpressCheckout>
</form>
此页面包含您需要的所有信息 https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECGettingStarted/
或者使用集成向导生成de form https://devtools-paypal.com/integrationwizard/ecpaypal/main.php
【讨论】:
以上是关于在 Paypal 中完成购买后重定向到原始站点的主要内容,如果未能解决你的问题,请参考以下文章
“抱歉,我们目前无法完成您的购买” - PayPal Laravel 集成