在 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 - 付款后重定向到我自己的页面

有没有办法在使用联系表 7 付款后重定向到特定的感谢页面?

“抱歉,我们目前无法完成您的购买” - PayPal Laravel 集成

PayPal Express Checkout 后重定向父页面

React Router - PrivateRoute,登录后重定向到原始目的地