transactions - Paypal 太平洋夏令时。返回 URL 中缺少交易 ID

标签 transactions paypal return eclipse-pdt

我偶然发现了 PayPal 非常奇怪的行为。当我在 URL 中使用 localhost 测试针对 paypal 沙箱的 paypal 集成时,我得到了事务 ID,但是当我用实际站点名称替换 localhost 时,事务变量不存在。在这两种情况下,PayPal 都会返回到我的网站,但当我不使用本地主机时,它不会返回交易信息,这使我们的测试人员的努力变得徒劳。

例子:

http://localhost/paymentinfo.aspx?Product=DC - working
http://test1/paymentinfo.aspx?Product=DC     - is not working

明确一点:

  1. 我的沙盒帐户上的 PDT 已激活。
  2. 我的沙盒帐户上的 IPN 已激活。

这是我的 BuyNow PayPal 按钮的代码:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----DFGHJ8yuFFTY-----END PKCS7-----"/>
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted"/>
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

其中 ="encrypted"包含以下参数列表的加密字符串:

cmd=_xclick
business=paypal_business_acc@companyname.com
cert_id=123456
charset=UTF-8
item_name=product name
item_number=123456
amount=11.97
currency_code=USD
return=http://localhost/Success.aspx
cancel_return=http://localhost/AppDownPay.aspx?Cancel=true
notify_url=http://ipnlstnr/PayPalIPNListenerInternal.ashx
custom=2bcad9cb-9429-4e99-8984-5d0532bfb718
no_shipping=1
on0=CustomItem1
on1=CustomItem2
os0=VM
os1=DC

有没有人知道如何让 PayPal 将 transcation 变量返回到非本地主机包含的 URL?

更新: 看起来,PayPal 沙箱一直在向 IPN 监听器发送消息,而不是返回到我们的站点。这是很出乎意料的。因为自动返回打开了。我试过启用或禁用 PDT,但没有任何区别。我也尝试从按钮代码中删除 notify_url,但消息仍然被重定向到我们的 IPN 监听器,而不是我们的站点。我试图将“rm”变量添加到值为 2 的按钮代码中,但这并没有说服沙箱重定向到我们的网站。你能帮我理解我错过了什么吗?

更新 2: 问题已解决。问题是由于防火墙限制导致 PayPal 无法返回我们的应用程序造成的。一旦这些限制被删除,应用程序就会开始正常运行。

最佳答案

问题是由于防火墙限制,PayPal 无法返回到我们的应用程序造成的。一旦这些限制被删除,应用程序就会开始正常运行。

关于transactions - Paypal 太平洋夏令时。返回 URL 中缺少交易 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945514/

相关文章:

database - PostgreSQL's Repeatable Read Allows Phantom Reads 但是它的文档说不允许

c - 如果程序由于错误而提前退出,释放动态分配内存的正确方法是什么?

jquery .map() 返回 map 内的对象

multithreading - sqlite 在 WAL 模式下返回 SQLITE_BUSY

php - 交易: commit() vs rollBack()

codeigniter - 使用 Codeigniter 支付宝

"Donate Now"按钮的 Paypal 自定义金额

javascript - Paypal 表单问题的单选按钮选择

无法从 C 中的函数返回结构

c# - 交易不可用?