gpt4 book ai didi

php - PayPal IPN 未插入数据库

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

我在本地主机上测试了一个 paypal 捐赠按钮,它第一次将支付金额插入 mysql 数据库(在 phpmyadmin 上验证)。但在那之后它就停止工作了

下面有什么东西可以阻止它工作吗?

config.php

<?php

require "paypal_integration_class/paypal.class.php";
require "config.php";
require "connect.php";

$p = new paypal_class;
$p->paypal_url = $payPalURL;

if ($p->validate_ipn()) {
if($p->ipn_data['payment_status']=='Completed')
{
$amount = $p->ipn_data['mc_gross'] - $p->ipn_data['mc_fee'];

mysql_query(" INSERT INTO dc_donations (transaction_id,donor_email,amount,original_request)
VALUES (
'".esc($p->ipn_data['txn_id'])."',
'".esc($p->ipn_data['payer_email'])."',
".(float)$amount.",
'".esc(http_build_query($_POST))."'
)");
}
}

function esc($str)
{
global $link;
return mysql_real_escape_string($str,$link);
}
?>

捐赠按钮

<!-- The PayPal Donation Button -->



<form action="<?php echo $payPalURL?>" method="post" class="payPalForm">
<div>
<input type="hidden" name="cmd" value="_donations" />
<input type="hidden" name="item_name" value="Donation" />

<!-- Your PayPal email: -->
<input type="hidden" name="business" value="<?php echo $myPayPalEmail?>" />

<!-- PayPal will send an IPN notification to this URL: -->
<input type="hidden" name="notify_url" value="<?php echo $url.'/ipn.php'?>" />

<!-- The return page to which the user is navigated after the donations is complete: -->
<input type="hidden" name="return" value="<?php echo $url.'/thankyou.php'?>" />

<!-- Signifies that the transaction data will be passed to the return page by POST -->
<input type="hidden" name="rm" value="2" />


<!-- General configuration variables for the paypal landing page. Consult
http://www.paypal.com/IntegrationCenter/ic_std-variable-ref-donate.html for more info -->

<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="cbt" value="Go Back To The Site" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="lc" value="US" />
<input type="hidden" name="currency_code" value="USD" />




<input type="double" name="amount">

<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest" />

<!-- You can change the image of the button: -->
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" name="submit" alt="PayPal - The safer, easier way to pay online!" />

<img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</div>
</form>

最佳答案

我注意到的第一件事是,您仅在付款状态为已完成时才运行数据库更新。当然,您的付款可能处于待处理状态,在这种情况下,代码将被跳过。

您在本地测试的具体情况如何?您是否使用了 IPN 模拟器,或者是否运行了实际的沙盒交易,以便系统像真实订单一样触发? PHP处理后你的notify_url的实际值是多少?您正在使用 $url,但它的值(value)是多少?如果它是“本地主机”,它将不起作用。

您是否检查过 PayPal IPN 历史记录以查看它是否显示 IPN 正在发送并且可能收到错误结果?您是否检查过您的 Web 服务器日志以查看该脚本是否被命中?

关于php - PayPal IPN 未插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22897529/

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