大雕哥
你身边最懂互联网的朋友

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

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

这种问题,不仅禾匠商城购物小程序有这个问题,志汇餐饮外卖小程序也有同样的问题,并且据我研究,这个是微擎微赞系统的通病!更有可能是微信支付本身的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'];”这句代码的问题了,根据之前的经验,我们稍加修改就可以了,完成以后我们再进行支付测试,就可以发现正常了。

完整代码下载:

温馨提示: 隐藏内容需要 回复评论 后才能查看, 评论后请 刷新 !.

赞(0) 解决问题,就是我最大的快乐
转载请保留出处:大雕哥 » 小程序支付没有回调:志汇、禾匠小程序微擎微赞通病
分享到: 更多 (0)

评论 12

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    大雕哥我一直爱你!

  2. #2

    谢谢你。。。。。。。。。。。。。

    a4772周前 (07-05)回复
  3. #3

    阿仕顿阿仕顿爱上

    情趣2周前 (07-05)回复
  4. #4

    这个问题 怎么解决呢

    6662周前 (07-06)回复
  5. #5

    这个问题 怎么解决呢

    你好2周前 (07-07)回复
  6. #6

    一直被这个问题烦

    小小2周前 (07-08)回复
  7. #7

    大雕哥我一直爱你!

    ldbmcs2周前 (07-08)回复
  8. #8

    啊实打实打算

    大苏打1周前 (07-09)回复
  9. #9

    1大雕哥我一直爱你!

  10. #10

    嗯,文章不错

    小强子3天前回复
  11. #11

    大雕哥我一直爱你!

    小强子3天前回复
  12. #12

    回调问题[email protected]

    小强子3天前回复

大雕哥,做你身边最懂互联网的朋友

邮箱订阅联系我们

如果觉得文章有用可以打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏