微信浏览器内图片点击放大 获取微信JS-SDK 获取access_token access_token获取不到? 微信获取经纬度并格式化 H5页面微信授权登录 公众号静默授权 状态码 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定 模板消息推送 判断是否绑定公众号 initialize报错 - HBuilder使用微信开发者

模板消息推送

首页 > 前端开发 > 公众号/微信 更新日期:2022-12-05 09:12:55

代码

public function WxSms (Request $request) {
    // 获取token
    $appid = "公众号appid";
    $secret = "公众号secret ";
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $secret;
    $weixin = file_get_contents($url);//通过code换取网页授权access_token
    $jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码
    $json = get_object_vars($jsondecode);//转换成数组
    // 拼接短消息模板
    $template = array(
        'touser' => 'openid',
        'template_id' => "短消息模板id",
        'url' => '点击要跳转的地址',
        'topcolor' => "#FF0000",
        "data"=>[
            'first'=>[
                'value'=>'您好,您有一条打卡提醒',
                'color'=>'#000'
            ],
            'keyword1'=>[
                'value'=>'河北澄怀',
                'color'=>'#000'
            ],
            'keyword2'=>[
                'value'=>'2021年1月17日 18:00:00',
                'color'=>'#000'
            ],
            'keyword3'=>[
                'value'=>'企业疫情防控未打卡',
                'color'=>'#000'
            ],
            'remark'=>[
                'value'=>'本条为测试数据,发给指定的人',
                'color'=>'#000'
            ]
        ]
    );
    $json_template = json_encode($template);
    $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $json['access_token'];
    $ch = curl_init(); //初始化curl
    curl_setopt($ch, CURLOPT_URL, $url); //抓取指定网页
    curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
    curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode($json_template));
    $db = curl_exec($ch); //运行curl
    curl_close($ch);
    dd($db);
}

封装为函数

/**
 * @ $openid 推送给谁
 * @ $templateId 模板id
 * @ $url 要跳转的地址,可为空
 * @ $access_token 微信秘钥
 * @ $str 模板消息内容数组,具体字段需按照模板字段自行设置
 */
function WxSms ($openid, $templateId, $url, $access_token, $str) {
    // 拼接短消息模板
    $template = array(
        "touser" => $openid,
        "template_id" => $templateId,
        "url" => $url,
        "topcolor" => "#FF0000",
        "data"=>[
            # 标题
            "first"=>[
                "value"=>$str["first"],
                "color"=>"#000"
            ],
            # 
            "keyword1"=>[
                "value"=>$str["key1"],
                "color"=>"#000"
            ],
            "remark"=>[
                "value"=>$str["remark"],
                "color"=>"#000"
            ]
        ]
    );
    $json_template = json_encode($template);
    $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$access_token;
    $ch = curl_init(); //初始化curl
    curl_setopt($ch, CURLOPT_URL, $url); //抓取指定网页
    curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
    curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, urldecode($json_template));
    $db = curl_exec($ch); //运行curl
    curl_close($ch);
    dd($db);
}


标题导航