微信小程序发送服务消息通知


首先需要在微信小程序中添加新的消息模板 得到  消息模板id  以及消息  参数 结构   

 

然后是微信小程序方面  需要首先  激活消息模板  然后在激活成功的回调函数中进行消息的发送

  /**
                   * 激活消息模板
                   */
                  wx.requestSubscribeMessage({
                    tmplIds: ['MDXKR0gxp_F392DOtrqDMN9KztZNdW5hE5AtVT4ja70'],
                    success: function (res) {
                     
                  /**
                   * 微信小程序发送消息
                   */
                  wx.request({
                    url: send,
                    data:{
                         'touser':wx.getStorageSync('open_id'),
                         'order_create':_this.data.ordersuccess.create_time,
                         'order_no':_this.data.ordersuccess.order_num,
                         'price_sum':_this.data.ordersuccess.final_sum,
                         'delivery':_this.data.ordersuccess.delivery},
                    success:function(res){
                        console.log(res);
                    }
                  })
                    },
                    complete: function(res){
                    },
                    fail: function(res){
                     
                    }
                  }) 

  

接下来是后台处理发送请求:

   /**
     * 发送微信小程序消息
     */
    public function send(){

        $touser=IFilter::act(IReq::get('touser'));
        $order_create=IFilter::act(IReq::get('order_create'));            //订单创建时间
        $order_no=IFilter::act(IReq::get('order_no'));                //订单编号
        $price_sum=IFilter::act(IReq::get('price_sum'));              //订单金额
        $delivery=IFilter::act(IReq::get('delivery'));           //配送方式


        //siteconfig读取类
        $siteConfigObj = new Config("site_config");
        $site_config   = $siteConfigObj->getInfo();

        $appid=$site_config['wechat_AppID'];
        $secret=$site_config['wechat_AppSecret'];
        /**
         * 首先获取微信小程序的           AccessToken
         */
        $ccc="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
        $content=$this->curl($ccc);
        $content=json_decode($content);

        $accesstoken=$content->access_token;

        $datas=array(
        'touser'=>$touser,
        'lang'=>'zh_CN',
        'data'=>array(
            'character_string1'=>array('value'=>$order_no),
            'time2'=>array('value'=>$order_create),
            'amount3'=>array('value'=>$price_sum),
            'phrase4'=>array('value'=>$delivery),
            'date7'=>array('value'=>ITime::getDateTime()),
        ),
            'template_id'=>'MDXKR0gxp_F392DOtrqDMN9KztZNdW5hE5AtVT4ja70',
            'miniprogramState'=> 'trial'     //跳转 小程序类型
        );

        $url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=$accesstoken";

        $result = $this->curl($url, $datas);


        Block::sendRseult(200,'goods detail success',[
            'flag'=>0,
            'result'=>$result,
        ]);


    }

然后这就发送成功了

 

注:  可能遇到的问题就是    wx.requestSubscribeMessage   这个调用必须要在点击事件中  再有其他的问题就是微信所报的错了   文档中都有的   按照报错的代码  以及提示  改就ok  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM