2016-05-13 125 views
3

我已经花了9个小时,今天使用贝宝,我有一个问题,我找不到解决方案。贝宝将不会发送沙箱交易数据到IPN

我正在使用Paypal Javascript Buttons github脚本创建动态页面生成的按钮,简单的立即购买交易。由PHP产生

按钮示例输出(因此是动态的),看起来像这样(设有沙箱详情):

<script src='https://site-addr/includes/js/[email protected]' 
data-callback='https://site-addr/account/listener.php' 
data-tax='0' 
data-env='sandbox' 
data-shipping='0' 
data-currency='GBP' 
data-amount='1.00' 
data-quantity='1' 
data-custom='$2y$10$BdA/7xN2S/fzRq8X9p4pFOmzYBpia/u7sWsAcWN/4w9NZVXduaUzu' 
data-number='20165' 
data-size='Large' 
data-locale='UK' 
data-host='www.sandbox.paypal.com' 
data-type='button' 
data-cancel_return='https://site-addr/account/basket.php' 
data-return='https://site-addr/account/complete.php' 
data-name='Site Name Tickets' 
data-button='buynow' 
async='async'></script> 

这种经由贝宝接口购买产生一个完美的简单的点击形式。

同时,我已经下载了IPN listener from the Paypal Github并根据需要更新了详细信息,同时下载了cacert.pem文件 from here

我已运行Paypal IPN simulator给了我正确的结果通过我listener.php文件,给予正确的饲料出完整的数据和各VERIFIED我运行测试时间。

的问题

但是,当我运行使用上述细节的沙箱购买,购买正常运行,但我没有得到任何反馈给我的IPN监听器,我也得到我的sandbox Transaction notifications没有交易细节。但我DO得到购买成功和购买已完成的沙箱Paypal帐户的详细信息。

事情我已经试过

我也读了不少Paypals文件,发现他们的方法来提供一个简洁明了的指导设定了PayPal任何东西,很误人子弟。我已经阅读了大约40页的文档,其中包括从堆栈溢出(找到有用的解决方案P aypal directly reference而不是自己提供的)中找到各种不好的帖子。

解决方案已经尝试和失败:

规定,但上述替代data-callback不起作用。交易似乎仍然成功,但交易或IPN数据未被记录。

  • 删除/替换各种data-实体,但没有成功。

  • 我的整个网站都有完整的PHP错误报告,并且没有任何形式的错误。


进一步考虑

我敢肯定,你们中的一些会说,好,我应该使用SDK下载做这样的事情,但SDK的范围巨大的,我的需求相对简单,贝宝文档留下了很多设计。他们(在一系列贝宝github存款)正在使用示例代码MySQL_请求以及addslashes和其他东西是过期。

另外值得注意的是,尽管Javascript Button生成器的PayPal文档接受帐户电子邮件或帐户代码,但给出帐户代码会导致严重错误并阻止处理付款(真实或沙箱)。

再加上这个发现只是零碎的指导信息以及文档中的“循环”,以至于我在一个主题上,它说:“哦,如果你想知道如何做到这一点,链接“,然后在链接之后,它是为非开发人员(在开发人员门户上)编写的更详细的文本,然后是链接到另一个文本块,然后再返回到开头的文本。

对不起,这正在变成一个贝宝呻吟,但尽可能我想避免使用巨大的SDK系统应该是一个简单的发送和接收数据操作。


解决此问题的任何有用的示例?


最后一点: 上个月,我在Stripe,它完全一样的东西,花了四小​​时完美的作品进行了支付系统。

(我不能在这里使用条纹,因为客户有一个现有的Paypal帐户,不会改变)。

解决方案:

从下面大卫Nguyens答案的帮助下,我找到了我的情况下,问题是,我已经设置了IPN并启用IPN 并为其赋予正确的地址,但这是在直播 帐户,而不是沙箱帐户,尽管只有所有细节后设置 的沙盒帐户在活的一个被应用了。

Paypals 直播沙盒轮廓完全互斥 和沙箱创建将不会从它与相关的真实账户 导入任何数据。

回答

3

解决在贝宝

  • 问题的进一步探讨沙盒贝宝IPN的日志,看看哪些地方的数据被发送到,链接是production URLsandbox URL
  • 检查状态代码,如果你正在5XX类型的错误 - 调试脚本
  • 这应该告诉你的IPN发送到,如果它是不是应该检查:
    • IPN在URL中的按钮轮廓
    • IPN的URL重写但是
+0

我的交易页面[这里](https://developer.paypal.com/developer/dashboard/sandbox/)显示无交易,登录到沙箱网站对我来说这些交易没有什么比JS表单中给出的数据更多,没有5xx返回等等。监听器脚本不应该出现故障,因为IPN模拟器使用相同的脚本引用(如正版帐户控制面板)。我可以在沙盒管理站点找不到任何编辑任何交易目的地的选项。 – Martin

+0

为了f ***的缘故,我使用了您提供的链接并将沙盒地址替换为它,并且我告诉我它已“排队”,因为在我的沙盒配置文件中,我没有创建IPN目标文件(但是我拥有真实生活中的配置文件)。 Jeeeez。 – Martin

+0

感谢您在正确的方向轻推。虽然我咬紧牙关,但沙箱事务列表似乎不能从沙箱配置文件中得到.....所以很Paypal。 – Martin