【问题标题】:PHP MySQL IPN ProblemPHP MySQL IPN问题
【发布时间】:2011-07-09 15:36:14
【问题描述】:

我正在使用 PayPal IPN 脚本来处理我的新项目的订阅付款。一切似乎都很好,但由于某种原因,当付款被处理并接受时,我的数据库没有更新。

这是更新我的数据库的 IPN 脚本的一部分:

$p->add_field('cmd','_xclick-subscriptions');
$p->add_field('no_note','1');
$p->add_field('currency_code','USD');
$p->add_field('a3', "0.01");
$p->add_field('t3', "M");
$p->add_field('p3', "1");
$p->add_field('src', "1");
$p->add_field('sra', "1");
$p->add_field('business', "myemail@gmail.com");
$p->add_field('return', "http://myurl.com/");
$p->add_field('cancel_return', $this_script.'?action=cancel');
$p->add_field('notify_url', $this_script.'?action=ipn');
$p->add_field('item_name', "My Package Thing ($_POST[hash])");
$p->add_field('custom', "$_POST[hash]");

$p->submit_paypal_post();
      //$p->dump_fields();
      break;
    case 'success':
      echo "<html><head><title>Success</title></head><body><h3>Thank you for your order.</h3>";
      echo "</body></html>";
      break;
    case 'cancel':
      echo "<html><head><title>Canceled</title></head><body><h3>The order was canceled.</h3>";
      echo "</body></html>";
      break;
    case 'ipn':
if ($p->validate_ipn()) {
include("config.php");
$select = mysql_query("UPDATE `mydb_accounts`.`accounts` SET `active` = '1' WHERE `accounts`.`hash` = '$_POST[hash]';") or die(mysql_error());
mysql_query($select);
} break; }

$_POST[hash] 工作正常,因为当“PayPal 付款页面”出现时,它会显示项目描述。

有什么想法吗?谢谢!

【问题讨论】:

  • 因为该文件通常是由贝宝而不是人为的,所以您将日志错误写入文件。
  • 感谢您的提示。对解决方案有任何想法吗?
  • 你没有从 mysql 得到错误?
  • 老实说,我不相信我有任何错误。
  • 这将取决于您是否向我们提供任何错误。具体来说,尝试在该函数之后添加一个快速行以通过电子邮件向您自己发送 mysql_error() 的结果。此外,将查询保存在变量中,并通过电子邮件将查询发送给自己(所有变量都放入)。

标签: php mysql paypal paypal-ipn


【解决方案1】:

确保你在你的配置文件中设置了mysql_connect(不仅仅是设置数据库信息)。

【讨论】:

    【解决方案2】:

    已经为不同的系统构建了 3 次 PayPal IPN 处理程序,我可以确认大多数问题是由简单的 PHP 语法错误或由于脚本输出丢失而看不到的错误引起的。

    将任何输出放入 IPN 处理程序毫无意义 - PayPal 是唯一能看到它们并丢弃它们的东西。

    我的代码分为两部分,payment callbackcore logic entity。始终尝试首先从浏览器打开回调处理程序以捕获任何语法或逻辑错误。然后用硬编码测试替换回调 POST 并查看它是否有效。然后针对 paypal 沙盒进行测试。

    我使用我的 Emesary 通知系统将消息发送到后端 - 但是您可以附加到日志文件等。

    【讨论】:

      猜你喜欢
      • 2013-06-20
      • 2013-02-06
      • 2013-04-21
      • 2011-11-05
      • 2013-07-28
      • 2012-01-07
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多