小程序和公众号消息统一消息发送

话不多说直接上代码 我这里做的小程序的消息推送 小程序绑定的微信服务号 通过服务号的消息模板给小程序和服务号推送消息
欢迎大家的指导意见
这个链接是微信的官方文档可以参阅 就是 错误码有点少了
https://developers.weixin.qq.com/miniprogram/dev/api/sendUniformMessage.html
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=secret';
    $access_token = curl_get($url);
    $res = json_decode($access_token['access_token']);//这里有错误 大家改下 这里是json串不是数组 
    $temp = json_encode(getTemp());
    //微信小程序 公众号 绑定 统一发送消息
    $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token='.$res;
    $res = json_decode(curl_post($url, $temp), true);
    print_r($res);

    function getTemp() {
          $data = ['恭喜你购买课程包成功!', 123,12343,123, date('Y-m-d H:i:s',time()), "谢谢您的参与"];
        $sendArr = array();
        $sendArr['touser'] =  'openid' ;
        $sendArr['mp_template_msg']['appid'] = 'appid';
        $sendArr['mp_template_msg']['template_id'] = 'template_id';
        $sendArr['mp_template_msg']['url'] = 'url';//公众号 目前没有跳转链接  写死 跳转到网站的m站
        $sendArr['mp_template_msg']['miniprogram']['appid'] = 'appid';
        $sendArr['mp_template_msg']['miniprogram']['pagepath'] = '';//小程序跳转链接
        $sendArr['mp_template_msg']['data'] = addkey($data);

        return $sendArr;
    }

    //数组下标集合
     function keys() {
        return ['keyword1', 'keyword2', 'keyword3', 'keyword4', 'keyword5', 'keyword6', 'keyword7'];
    }

    //添加数组下标
  function addkey($par) {
        if(!is_array($par)) return false;
        $keys = keys();
        $arr = [];
        for($i=0; $len=count($par), $i<$len; $i++) {
            if($i) {
                $arr[$keys[$i - 1]] = $par[$i];
            }else{
                $arr['first'] = $par[$i];
            }
        }
        if(count($arr) > 1) $arr['remark'] = array_pop($arr);

        $data = array(); //拼接成符合微信要求的数组
        $num = 0;
        foreach($arr as $key => $val) {
            $data[$key] = ['value'=>$val, 'color'=>getColor($num)];
            $num ++;
        }
        return $data;
    }

    function getColor($num) {
        if($num % 2) {
            return '#743A3A';
        }else {
            return '#FF0000';
        }
    }

     function curl_get($url, $params = array(), $timeout = 5)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $file_contents = curl_exec($ch);
        curl_close($ch);
        return $file_contents;
    }

    function curl_post($url, $filedata)
    {
        $curl = curl_init();
        if(class_exists('./CURLFile'))//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同
        {
            curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
        }else
        {
            if(defined('CURLOPT_SAFE_UPLOAD'))
            {
//                curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
            }
        }

        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        if(!empty($filedata))
        {
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $filedata);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
小程序可以通过与微信公众号绑定来接收公众号消息。首先,需要将小程序公众号绑定到同一个开放平台下。如果是新的公众号没有任何用户关注的话,可以直接在后端监控关注事件然后去数据库对比。如果是已经有公众号用户了,就需要先拉取一遍公众号的用户存入数据库然后再进行比对。公众号服务器配置需要是80端口或者443端口才能提交,token也要和后端对应,否则会提示参数错误之类的。小程序公众号的关联都是通过unionid来联系的,这里一个用户表一个公众号表,小程序用户登录后得到unionid,然后存入数据库,公众号用户关注后获取unionid和openid,之后根据小程序unionid去查询公众号unionid得到openid之后就可以直接推送消息了。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [小程序关联公众号推送公众号消息](https://blog.csdn.net/u013050839/article/details/121875117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序公众号收到消息之后根据情况进行回复](https://blog.csdn.net/qq_41640218/article/details/127256525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值