15年软件开发经验,只做源码定制!

原创设计 定制开发

满足您的个性化需求

当前位置:首页 后端开发 Thinkphp5

公众号消息推送,推送订单信息

教腾豪| 发布于 2021-09-04 18:31:15| 72阅读| 0点赞| 0评论
举报

小程序用户下单,支付成功,关注公众号,推送信息

公众消息推送

需要先关联公众号和小程序(需要在微信公众号申请)

公众号推送需要摸版信息,推送到微信的摸版信息


摸版代码

 //测试消息推送
    public function send($order_id,$user_id)
    {
//        $user_id = $this->token();
        $openid = Db::name('user')->where('id',$user_id)->value('openid');
//        var_dump($openid);
//        $openid = 'o-pL90KfVGQZS2MB46bTBr_jOI2c';
        $access_token = Db::name('applets')->where('time','>',time())->value('token');

        if(!$access_token)
        {
            $common = Common::access_token();
            $access = json_decode($common,true);
            $access_token = $access['access_token'];
            $appletData = Db::name('applets')->where('id',1)->update(['token' => $access_token,'time' => time()+7000]);
        }
//        $abc = '44_XyzYAsHC7ujNKt4AAM4-KI_PauUwjIIhq6JWttSuzkXASy-1F1bs98DkcsU0qosmrBsYMXTDAe_wSma6dJCMb1rDqB8TFszcg-BZe8fmLwhwv2tagfBC8c-k-LS47WiooRaG8m-owgemm_WeYUAcAJAFBH';
//        $logInfo = Db::name('users_log')->where('users_id',$user_id)->order('id','desc')->find();
        $orderInfo = Db::name('order')->where('id',$order_id)->find();
        $orderInfo['accept_id'] = Db::name('user')->where('id',$orderInfo['accept_id'])->value('username');


        $url="https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=$access_token";
        $data=[
            "touser"=>"$openid",//openid
            "mp_template_msg"=>[
                "appid"=>"wx7203cb817fad819c",
                "template_id"=>"27FAj776Smjjuq103YBQIaaQw9BCN4LfO6JNaZBwjXs",   //需要改
                // "url"=>"/pages/wdzl/wdzl",//跳转页面路径
                 "miniprogram"=>[
                     "appid"=>"wx76201f50c3cb1497",//appid
                     // "pagepath"=>"/pages/wdzl/wdzl",//页面路径 参数
                     "pagepath"=>"",
                 ],//跳转小程序
                "data"=>[


                    "first"=>[//参数名字 自定义的name名
                        "value"=>"您有一个新的服务订单",//值
                        "color"=>"",//颜色
                    ],
                    "keyword1"=>[//参数名字 自定义的name名
                        "value"=>$orderInfo['type_zt'].'-'.$orderInfo['cate2_id'],//值
                        "color"=>"",//颜色
                    ],
                    "keyword2"=>[//参数名字 自定义的name名
                        "value"=>$orderInfo['accept_id'],//值
                        "color"=>"",//颜色
                    ],
                    "keyword3"=>[//参数名字 自定义的name名
                        "value"=>$orderInfo['create_time'],//值
                        "color"=>"",//颜色
                    ],
                    "keyword4"=>[//参数名字 自定义的name名
                        "value"=>$orderInfo['address'],//值
                        "color"=>"",//颜色
                    ],
                    "keyword5"=>[//参数名字 自定义的name名
                        "value"=>$orderInfo['phone'],//值
                        "color"=>"",//颜色
                    ],
                    "remark"=>[//参数名字 自定义的name名
                        "value"=>$orderInfo['textarea'],//值
                        "color"=>"",//颜色
                    ],
                ],
            ],
        ];
        var_dump($this->http_post($url,json_encode($data)));//发送模板消息
//        $this->http_post($url,<a href="https://www.qinfenniao.com/article.html?name=js" target="_blank">js</a>on_encode($data));
    }

    function http_post($url,$data)
    {
        $ch = curl_init();
        $params[CURLOPT_URL] = $url;    //请求url地址
        $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
        $params[CURLOPT_SSL_VERIFYPEER] = false;
        $params[CURLOPT_SSL_VERIFYHOST] = false;
        $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
        $params[CURLOPT_POST] = true;
        $params[CURLOPT_POSTFIELDS] = $data;
        curl_setopt_array($ch, $params); //传入curl参数
        $content = curl_exec($ch); //执行
        curl_close($ch); //关闭连接
        print_r($content);
        return $content;
    }

用的用户的opendID和和订单的信息

主意这里需要的是公众号的appID和appSecret


这里access_token每次都是随机生成的,存一表,下面的请求回来的access_token

public static function access_token()
    {
        $web_config = db("applets")->find();
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&<a href="https://www.qinfenniao.com/nav/%E7%BD%91%E7%AB%99%E5%BC%80%E5%8F%91.html" target="_blank">app</a>id=" . $web_config['<a href="https://www.qinfenniao.com/nav/%E7%BD%91%E7%AB%99%E5%BC%80%E5%8F%91.html" target="_blank">app</a>let_<a href="https://www.qinfenniao.com/nav/%E7%BD%91%E7%AB%99%E5%BC%80%E5%8F%91.html" target="_blank">app</a>id'] . "&secret=" . $web_config['<a href="https://www.qinfenniao.com/nav/%E7%BD%91%E7%AB%99%E5%BC%80%E5%8F%91.html" target="_blank">app</a>let_secret'];

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $resule = curl_exec($ch);
        curl_close($ch);
        return $resule;
    }

这是公众号推送,需要用到用户的opendID和公众号的appID

0

0条评论

别默默看啦~登录/注册一起参与讨论吧~

热门标签

教腾豪
微信扫一扫立即咨询
账号登录|扫码登录

立即注册 |忘记密码?

欢迎注册

已有账号马上登录

重置密码

扫码绑定微信
微信扫一扫

绑定手机号

分享到-微信

举报

  • 举报类型:

  • 举报描述:

您好,当前积分不足。

在线客服
拨打电话
17330196230 13230981129
顶部