https://www.cnblogs.com/hanyudanei/p/9140837.html
微信支付订单号最长32位
支付宝支付订单金额字符串型
在做支付开发时,发现一个问题,就是说异步回调会一直不停的回调,这样会导致有些业务逻辑的问题,比如说本人在做的一个项目,支付成功后,会有一系列的业务,比如会员升级,钱包判断等功能,如果一直回调进行处理那出现问题的,那么如何解决了,也挺简单的,就是在处理完看,你给支付宝或微信进行一个输出,告诉支付宝或微信,我已处理完成,那么就不会一直在出现回调
支付宝很简单,只要输出 echo success;即可,而微信则需要return 一个xml 数据
<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>
复制代码
//支付宝
$sql="select id,is_pay,mem_id from `order` where ordernum='{$out_trade_no}'";
//更新订单
$order = $dosql->GetOne($sql);
//如果已支付过,就无需再进行游戏规则 1代表你也走过这个流程
if($order['is_pay']===1){
echo "success";
}
复制代码
$order = $dosql->GetOne("select id,is_pay,mem_id from `order` where ordernum={$data['out_trade_no']}");
//微信支付回复
if ($order['is_pay']==1) {
return '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';
}
主要思想就是先判断下是否已支付过,如果已支付过,就直接告诉支付宝或微信,已支付。无需再进行异步回调。