thinkphp5 微信小程序推送模板消息

/**
    * 示例
    */
    public function confirm_distributor()
    {    
        $d = input('post.');
        $wx = WxUser::where('id','eq',$d['uid'])->find();
        $data = ['id'=>$d['id'],'appoint'=>$d['distributorid'],'status'=>3];
        if($d['type'] == 1){
            $ret = OrderGoods::update($data);
            $page = 'pages/orderDetails/orderDetails?id='.$d['id'].'&order_id='.$d['orderid'].'&act=2&order_act=1';
        }
        if($d['type'] == 2){
            $ret = IntegralOrderGoods::update($data);
            $page = 'pages/integralorderDetails/integralorderDetails?id='.$d['id'].'&order_id='.$d['orderid'].'&act=1&order_act=2';
        }

        $franchise = Db::name('franchise')->where('id','eq',$d['franchise_id'])->find();
        
        //模板消息
        $data  = [
            'keyword1'=>[ //下单时间
                'value'=> $d['create_time'],
            ],
            'keyword2'=>[ //所属店铺
                'value'=> $franchise['shop_name'],
            ],
            'keyword3'=>[ //订单编号
                'value'=> $d['orderid'],
            ],
            'keyword4'=>[ //配送员
                'value'=> $d['clerk_name'],
            ],
            'keyword5'=>[ //配送员电话
                'value'=> $d['clerk_phone'],
            ],
            'keyword6'=>[ //配送状态
                'value'=>'正在配送',
            ],
            'keyword7'=>[ //配送商品
                'value'=> $d['goods_name'].'...',
            ],
            'keyword8'=>[ //订单金额
                'value'=> $d['type'] == 1 ? '¥'.$d['price'] : $d['price'].'积分',
            ],
            'keyword9'=>[ //联系人
                'value'=> $d['realname'],
            ],
            'keyword10'=>[ //收货地点
                'value'=> $d['address'],
            ],
        ];
        $template_id = '登录微信小程序上创建模板消息的模板秘钥';
        $res = $this->send_template($wx['openid'],$template_id,$d['formid'],$data,$d['id'],$d['orderid'],2,1,$page);
        return json_encode(array('code':200,'msg'=>'kkkk'));
    }

/**
 * [send_template 推送模板消息]
 * @param  [type] $openid      [openid]
 * @param  [type] $template_id [模板消息id]
 * @param  [type] $formid      [表单id]
 * @param  [type] $data        [内容]
 * @param  [type] $id          [商品id]
 * @param  [type] $order_id    [订单编号]
 * @param  [type] $act         [查看标识]
 * @param  [type] $order_act   [查看标识]
 * @return [type]              [description]
 */
function send_template($openid,$template_id,$formid,$data,$id,$order_id,$act='2',$order_act='1',$page){
    //form_id 表单提交场景下,为submit事件带上的formId;支付场景下,为本次支付的prepay_id
    //获取token值
    $config = Db::name('wx_config')->where('id','eq','1')->find();
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$config['x_appid']."&secret=".$config['x_appsecret'];
    $result = curl_get($url);
    $access_token = $result['access_token'];
    //拼装URL
    $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$access_token;
    //拼装模板消息
    // $data  = [
    //     'keyword1'=>[
    //         'value'=>"“".$textname."”",
    //         'color'=>'#000000'
    //     ],
    // ];
    $template_data=[
        'touser'=>$openid,
        'template_id'=>$template_id,
        'page'=>$page,
        'form_id'=>$formid,
        'data'=>$data,
        'emphasis_keyword'=>'',
    ];
    $template_data = json_encode($template_data);
    $result = curl_post_https($url,$template_data);
    return $result;
}

/* PHP CURL HTTPS POST */
function curl_post_https($url,$data){ // 模拟提交数据函数
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
        echo 'Errno'.curl_error($curl);//捕抓异常
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据,json格式
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值