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

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

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

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

完整代码下载:

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

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

评论 40

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

    就是这个问题,看看怎么解决

    fate18823周前 (09-01)回复
  2. #32

    看看这个问题怎么解决

    fate18823周前 (09-04)回复
  3. #33

    能详细点吗。是咋回事看看!!!!!!!!!!

    小A3周前 (09-05)回复
  4. #34

    强大的大雕哥

    jay3周前 (09-07)回复
  5. #35

    很不错,真的很不错

    12周前 (09-09)回复
  6. #36

    就是这个问题,看看怎么解决

    hrkgawxgttd2周前 (09-13)回复
  7. #37

    学习一下~~~~~~~~~~~~~~~!

    偶偶2周前 (09-13)回复
  8. #38

    感谢哈 找了好半天

    121周前 (09-14)回复
  9. #39

    想要完整的代码

  10. #40

    就是这个问题啊 泽明就

    测试4天前回复

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

邮箱订阅联系我们

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

支付宝扫一扫打赏

微信扫一扫打赏