微信公众号推送消息

/**
 * 微信消息推送
 */
if (!function_exists('send_wx_msg')) {

    function send_wx_msg( $openid='' , $temp_id="k1" , $send_data ) {

        $template_arr = [
            "k1" => "M0Uxat8AadtLQgH0JoQhIrGf7HV8ee_7FEuptA71-R0",   //  下单成功通知
            "k2" => "pGtNRRve97unCNci0VfRBjsgmDKyd-HAfQUqegzFHSA",   //  购买成功通知
            "k3" => "qVZ2qSq7w6kjVYAMKNIouS1VDYaN2RIatvTnhMmKTyc",  //  来款提醒
            "k4" => "pBBrHF4VD3wwkKs83FNI6KTmTY31SpQcnZXsxNnBcPQ",  //  退款申请通知
            "k5" => "_nO7SFtd2azXMWnj8kVaTBl7Kcqvh91runIpagHp4Dg",  //  发货通知
        ];
        
        
        //  购买成功通知
        $data = [
            "touser" => $openid, //对方的openid
            "template_id" => $template_arr[ $temp_id ], //模板id
//            "url" => "pages/index/index", //跳转小程序页面
            "url" => "", //跳转小程序页面
            "topcolor" => "#FF0000", 
            "data" => $send_data
        ];
             
        $access_token = getAccessToken(); 
        $msgurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $access_token; // 发送模板消息接口 
        $send_ret = CURLSend( $msgurl , "post" , $params=json_encode($data) );
        return $send_ret;
//        echo "<pre>";var_dump($send_ret);die;
    }

}

//获取access_token,微信调用接口凭据(使用接口需要用到)
function getAccessToken() {
    $config = Db::name('app_public')->where('id', 1)->find();
    if ($config['wx_expires_in'] < time()) {
        $appid = Config::get('site.wx_public_AppID');
        $appsecret = Config::get('site.wx_public_AppSecret');
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $appsecret;
        $tmp = CURLSend($url, 'get');
        $obj = json_decode($tmp);
//        echo "<pre>";var_dump( $obj );die;
        $dty = (time() + $obj->expires_in);
        $data['wx_access_token'] = $obj->access_token;
        $data['wx_expires_in'] = $dty;
        Db::name('app_public')->where('id', 1)->update($data);
        return $obj->access_token;
    } else {
        return $config['wx_access_token'];
    }
}

/**
 * 模拟浏览器发送
 */
function CURLSend($url, $method = 'get', $data = '') {
    $ch = curl_init(); //初始化
    $headers = array('Accept-Charset: utf-8');
    curl_setopt($ch, CURLOPT_URL, $url); //指定请求的URL
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, strtoupper($method)); //提交方式
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //不验证SSL
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //不验证SSL
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //设置HTTP头字段的数组
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible;MSIE5.01;Windows NT 5.0)'); //头的字符串
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1); //自动设置header中的Referer:信息
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //提交数值
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //是否输出到屏幕上,true不直接输出
    $temp = curl_exec($ch); //执行并获取结果
    curl_close($ch);
    return $temp; //return 返回值
}

调用消息

$data = [
            "first" => [
                "value" => "您的订单已经成功发货", 
                "color" => '#f10909'
            ],
            "keyword1" => [
                "value" => "订单编号", 
                "color" => '#f10909'
            ],
            "keyword2" => [
                "value" => "快递公司", 
                "color" => '#f10909'
            ],
            "keyword3" => [
                "value" => "运单号码", 
                "color" => '#f10909'
            ],
            "keyword4" => [
                "value" => "订单金额", 
                "color" => '#f10909'
            ],
            "keyword5" => [
                "value" => "收货地址", 
                "color" => '#f10909'
            ],
            "remark" => [
                "value" => "感谢您的使用", 
                "color" => '#f10909'
            ]
        ];
        $ret_msg = send_wx_msg( "o58Zsdfsdfsdfsdf" , "k5" , $data );      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值