>  기사  >  백엔드 개발  >  PHP는 지정된 사용자에게 전송될 WeChat 템플릿 메시지를 구현합니다.

PHP는 지정된 사용자에게 전송될 WeChat 템플릿 메시지를 구현합니다.

藏色散人
藏色散人앞으로
2019-12-04 16:03:515236검색

아동신발 문의가 많이 오는데요, 위챗 공용 계정 인터페이스를 이용해 특정 사용자에게 메시지를 보낼 수 있나요? 직접 보내려면 고객 서비스 메시지 인터페이스에 제한이 있습니다. 이를 위해서는 사용자가 48시간 이내에 당사에 연락해야 합니다. 공식 계정은 상호작용이 있는 경우에만 전송될 수 있습니다. 다른 하나는 전송 시간 제한이 없는 WeChat의 템플릿 메시지입니다. 그러나 WeChat은 전송되기 전에 일부 스팸 데이터를 방지하기 위해 템플릿을 사용해야 합니다.

보통 우리는 템플릿 메시지를 많이 받는다고 생각하는데 실제 효과는 다음과 같습니다.

관련 권장 사항: "PHP Tutorial"

이런 종류의 WeChat 템플릿 메시지의 효과를 얻는 방법은 무엇입니까?

먼저 WeChat 공개 플랫폼을 사용해야 합니다. 백그라운드의 "기능" 메뉴에서 템플릿 메시지를 선택하세요. 메뉴에 템플릿 메시지가 없으면 기능 플러그인을 클릭하여 추가해야 합니다.

플러그인을 추가한 후 템플릿 라이브러리에서 사용할 템플릿을 선택할 수 있습니다. 물론 템플릿을 생성할 수도 있습니다. 일반적으로 템플릿 라이브러리만 선택하면 충분하다고 합니다. , 이후 PHP 프로그램에서 사용되는 템플릿 ID를 기억해야 합니다.

다음으로 인터페이스의 호출 규칙에 대해 이야기하겠습니다.

http 요청 방법: POST

https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

어떤 형식의 데이터가 전송되나요? 전송된 데이터는 json 형식입니다. 다음 템플릿을 예로 들어 보겠습니다.

JSON 형식은 다음과 같습니다.

{
"touser": "这里是接收用户的OPENID",
"template_id": "这里是模板ID",
"url": "这里是点击详情后跳转的网址",
"data": {
"first": {
"value": "您好!有访客访给您留言了。",
"color": "#173177"
},
"user": {
"value": "张三",
"color": "#FF0000"
},
"ask": {
"value": "您好,非常关注黎明互联,有没有关于支付宝的视频教程?",
"color": "#173177"
},
"remark": {
"value": "该用户已注册12天",
"color": "blue"
}
}
}

데이터 형식 이제 PHP를 사용하여 서버에 보내는 방법을 이해했습니다. , JSON은 데이터 접합이 완료된 후에만 정의할 수 있습니다. 문자열에 익숙하지 않거나 문자열 사용을 좋아하지 않는 경우 배열을 사용하여 변환할 수 있습니다. WeChat 템플릿 메시지를 구현하기 위한 코드 조각:

class WxTmp
{
    //请求模板消息的地址
    const TEMP_URL = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=';
    public function getAccessToken(){
        //这里获取accesstoken  请根据自己的程序进行修改
        return $access_token;
    }
    /**
    * 微信模板消息发送
    * @param $openid 接收用户的openid
    * return 发送结果
    */
    public function send($openid){
        $tokens = $this->getAccessToken();
        $url = self::TEMP_URL . $tokens;
        $params = [
            'touser' => $openid,
            'template_id' => 'Oblr5uXH_fS79gMC8E0mYz0CpUAHnJtdvAC3PWABrsk',//模板ID
            'url' => 'https://www.liminghulian.com/course/3/lesson/list', //点击详情后的URL可以动态定义
            'data' => 
                    [
                      'first' => 
                         [
                            'value' => '您好!有访客访给您留言了。',
                            'color' => '#173177'
                         ],
                      'user' => 
                         [
                            'value' => '张三',
                            'color' => '#FF0000'
                         ],
 
                      'ask' => 
                         [
                                'value' => '您好,非常关注黎明互联,有没有关于支付宝的视频教程?',
                                'color' => '#173177'
                         ],
                       'remark' => 
                         [
                                'value' => '该用户已注册12天',
                                'color' => 'blue'
                         ] 
                      ]
        ]; 
        $json = json_encode($params,JSON_UNESCAPED_UNICODE);
        return $this->curlPost($url, $json);
    }
    /**
    * 通过CURL发送数据
    * @param $url 请求的URL地址
    * @param $data 发送的数据
    * return 请求结果
    */
    protected function curlPost($url,$data)
    {
        $ch = curl_init();
        $params[CURLOPT_URL] = $url;    //请求url地址
        $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
        $params[CURLOPT_SSL_VERIFYPEER] = false;
    $params[CURLOPT_SSL_VERIFYHOST] = false;
        $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
        $params[CURLOPT_POST] = true;
        $params[CURLOPT_POSTFIELDS] = $data;
        curl_setopt_array($ch, $params); //传入curl参数
        $content = curl_exec($ch); //执行
        curl_close($ch); //关闭连接
        return $content;
    }
}
 
$obj = new WxTmp();
$openid = '接收模板信息的用户的openid';
echo $obj->send($openid);

위 내용은 PHP는 지정된 사용자에게 전송될 WeChat 템플릿 메시지를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제