【发布时间】: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