微信扫码支付后通知微信后台系统不再发送该单的支付通知

bristy 2017-09-20 06:41:39
微信扫码支付成功后。要通知微信后台系统不再发送这个单的通知。但是我发送后还是收到3-5条通知。结果数据库里重复写入了数据。请问这是怎么回事要怎么解决?难道是要自已查询数据库是否写入了重复数据?
代码如下:
$postStr = file_get_contents('php://input');
if (! empty($postStr)) {
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$pay = new Pay();
$check_sign = $pay->checkSign($postObj, $postObj->sign);
if ($postObj->result_code == 'SUCCESS'&&$check_sign == 1)
{
    //写日志
$file = 'log.txt';
$tstr = date("Y-m-d H:i:s");
$str = $tstr."callback success\n";
if($f = file_put_contents($file, $str,FILE_APPEND))
{
echo "写入成功。<br />";
}
//---返回微信数据?让微信停止发送?
$xml = "<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>";
echo $xml;
echo 'SUCCESS';
    //---开始处理数据库----
}
...全文
420 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2017-09-24
  • 打赏
  • 举报
回复
插入多条数据表示重复调用了,应该加个标记,执行过就不要再执行了。
bristy 2017-09-21
  • 打赏
  • 举报
回复
谢谢,第一次搞这个,因为微信会回复8次,以为输出了SUCCESS不用查询。但是结果是数据库里经常是重复写了三到五条数据
果酱很好吃 2017-09-21
  • 打赏
  • 举报
回复
肯定是要查询是否重复的 直接输出 echo $xml; 就可以了 好像指输出 SUCCESS 也是可以的
bristy 2017-09-21
  • 打赏
  • 举报
回复
可是为什么就是echo $xml; 后还是不停的收到微信发来的信息呢?是网络原因还是什么? 下面是我写的日志。 2017-09-21 16:44:45callback success //回调,这里处理了echo xml 2017-09-21 16:44:45OrderPayment status is0 //判断数据库是否处理 2017-09-21 16:44:45 type = 4 member recharge LinePay. 2017-09-21 16:44:45 member recharge_money. 2017-09-21 16:44:45 Status = 1 Out_trade_no=1505983461154 member recharge_money success .//处理数据库 2017-09-21 16:44:56callback success  //再一次收到回调 2017-09-21 16:44:56OrderPayment status is1 2017-09-21 16:44:56OrderPayment status is1return 2017-09-21 16:45:13callback success  //第三次收到回调 2017-09-21 16:45:13OrderPayment status is1 2017-09-21 16:45:13OrderPayment status is1return

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧