gpt4 book ai didi

php - Paypal 返回 url 不适用于 php 和 html 表单

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:35 27 4
gpt4 key购买 nike

我设置了付款(使用 php),以便当客户返回到 success.php 文件时(在使用 IPN 监听器在 Paypal 上完成付款流程之后),他们将被添加到带有新成员(member)编号的数据库中,这也是在 success.php 文件中生成。如果客户以访客身份付款,则该过程运行良好,他们将按应有的方式返回到 success.php 页面。但是,如果客户登录到 paypal 而不是以访客身份付款,他们将被重定向到 Paypal 用户帐户页面,而不是返回到我网站上的 success.php 页面。这意味着付款已被收取,但他们的成员(member)编号尚未创建或添加到数据库中。

有没有办法强制所有客户返回我的成功页面,或者是否应该将创建新成员的代码添加到 ipn 监听器 (ipn.php) 文件中,这样即使他们不回来也没关系到成功页面?

这是我在结帐页面中用来设置返回 URL 的代码。

<form action="<?php echo $paypalURL; ?>" method="post">
<!-- Identify your business so that you can collect the payments. -->
<input type="hidden" name="business" value="<?php echo $paypalID; ?>">

<!-- Specify a Buy Now button. -->
<input type="hidden" name="cmd" value="_xclick">

<!-- Specify details about the item that buyers will purchase. -->
<input type="hidden" name="item_name" value="<?php echo $item_name; ?>">
<input type="hidden" name="item_number" value="<?php echo $item_number; ?>">
<input type="hidden" name="amount" value="<?php echo $price; ?>">
<input type="hidden" name="currency_code" value="GBP">

<!-- Specify URLs -->
<input type='hidden' name='cancel_return' value='http://example.com/payment-cancelled'>
<input type='hidden' name='return' value='http://example.com/thanks-for-joining/'>

<!-- Display the payment button. -->
<input type="submit" name="submit" class="button" value="Pay Now">
</form>

我应该补充一点,到目前为止我只在沙盒模式下测试过这个,所以如果有人知道这是否只是一个沙盒问题,请告诉我。

更新:进一步的测试表明,返回的 URL 也不再适用于访客结账。这只是在沙盒支付通过新的支付页面(附截图)后才开始发生。

paypal是否改变了请求返回url的方法?

Paypal payment screen shot

最佳答案

我尝试了几种将 Paypal 付款集成到我的网站的方法。根据我在 stackoverflow、paypal 网站和整个网络上阅读的内容,最好将所有后端工作放入您的监听器中。您可以在前端设置一些东西来为客户准备您的数据库,但是使用成功页面获取此信息的主要问题是:

1) 如果知道,您的客户可以直接输入您的成功页面的 URL
2) 客户可以选择在 paypal 之后不被重定向,并且可能根本不会返回您的站点(这是我所看到的最好的理由)。
3) 有时 paypal 重定向,但监听器可能没有收到 completed、pending、.etc 的 paypal 响应(这就是为什么他们在重定向前等待 10 秒),因此您不希望用户去其他地方或过早地验证。

老实说,将所有代码放在您的监听器中也非常简单,并且可以减少您的成功页面和 paypal 之间的错误传达。至于测试,我只是用IPN模拟器测试我的代码,没问题。

至于重定向 URL,paypal 中有一些冗余,如果您使用按钮,选项 3(我相信)将提供一个覆盖其他 URL 的返回 URL。我不确定是否使用沙箱,但请确保您的代码中有 .sandbox.paypal 以确保它正常工作 ( https://gist.github.com/xcommerce-gists/3440401#file-completelistener-php )。

希望对您有所帮助。

关于php - Paypal 返回 url 不适用于 php 和 html 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42933785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com