小程序支付没有回调:志汇、禾匠小程序微擎微赞通病

之前写过一篇文章《微信小程序可以完成微信支付但没有回调,也没有完成订单状态》,讲的是在使用禾匠商城购物小程序的过程,小程序配置都没有问题,也能够发起支付,并且支付成功,可就是没有完成订单状态,也就是说,服务端没有收到支付回调。

这种问题,不仅禾匠商城购物小程序有这个问题,志汇餐饮外卖小程序也有同样的问题,并且据我研究,这个是微擎微赞系统的通病!更有可能是微信支付本身的BUG。

也有朋友说是微信支付那边不支持https443端口的回调url导致的,不过咱们没办法去改变微信,只能改变自己的代码,这里再系统化的说一下,遇到这种没有问题该怎么解决。

思路:既然没有支付回调,先找到设置回调地址的代码

根据我们对微信支付开发的代码分析,所有设置支付回调的代码都有同样的参数“notify_url”,所以就很简单了,这里以志汇餐饮小程序为例,找到代码:

private function unifiedorder() {
$url = ‘https://api.mch.weixin.qq.com/pay/unifiedorder’;
$parameters = array(
‘appid’ => $this->appid, //小程序ID
‘mch_id’ => $this->mch_id, //商户号
‘nonce_str’ => $this->createNoncestr(), //随机字符串
// ‘body’ => ‘test’, //商品描述
‘body’ => $this->body,
// ‘out_trade_no’ => ‘2015450806125348’, //商户订单号
‘out_trade_no’=> $this->out_trade_no,
// ‘total_fee’ => floatval(0.01 * 100), //总金额 单位 分
‘total_fee’ => $this->total_fee,
// ‘spbill_create_ip’ => $_SERVER[‘REMOTE_ADDR’], //终端IP
‘spbill_create_ip’ => $_SERVER[‘REMOTE_ADDR’], //终端IP
//’notify_url’ => ‘http://www.weixin.qq.com/wxpay/pay.php’, //通知地址 确保外网能正常访问
‘notify_url’ => $this->root.’addons/zh_dianc/payment/wechat/notify.php’, //通知地址 确保外网能正常访问
‘openid’ => $this->openid, //用户id
‘trade_type’ => ‘JSAPI’//交易类型
);

很明显是 “ $this->root.”这个地方出了问题,继续翻代码,看看 root 是哪来的

function __construct($appid, $openid, $mch_id, $key,$out_trade_no,$body,$total_fee,$root)

是类的初始化参数,那我们就反查类的创建对象,找到代码块:

        pdo_update(‘wpdc_ydorder’, array(‘ydcode’ => $out_trade_no), array(‘id’ => $_GPC[‘order_id’]));
        $total_fee = $_GPC[‘money’];
        $root = $_W[‘siteroot’];
        if (empty($total_fee)) //押金
        {
            $body = “订单付款”;
            $total_fee = floatval(99 * 100);
        } else {
            $body = “订单付款”;
            $total_fee = floatval($total_fee * 100);
        }
        $weixinpay = new WeixinPay($appid, $openid, $mch_id, $key, $out_trade_no, $body, $total_fee, $root);
        $return = $weixinpay->pay();
        echo json_encode($return);
    }

很明显,就是“$root = $_W[‘siteroot’];”这句代码的问题了,根据之前的经验,我们稍加修改就可以了,完成以后我们再进行支付测试,就可以发现正常了。

完整代码下载:

[reply]这部分是付费服务,免费的请根据本文自行修复BUG[/reply]

人已赞赏
二次开发雕技术

志汇餐饮点餐小程序优化下单时间显示

2018-6-23 2:03:00

二次开发雕技术

志汇点餐外卖小程序商家后台不能退款也无法拒绝退款的问题解决办法

2018-8-15 0:06:08

免责声明本文中提到的资源均来自于互联网,仅供个人学习交流,若您喜欢本文可附上原文链接随意转载。
版权人申诉:我要申诉
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索