찾다
위챗 애플릿미니 프로그램 개발미니 프로그램 고객 서비스 기능 활성화 방법
미니 프로그램 고객 서비스 기능 활성화 방법Mar 13, 2020 pm 01:26 PM
고객 서비스미니 프로그램켜다위챗

미니 프로그램 고객 서비스 기능 활성화 방법

미니 프로그램의 고객 서비스 기능을 활성화하는 방법

맞춤형 미니 프로그램의 고객 서비스 기능을 열려면 두 단계가 필요합니다.

첫 번째 단계: 자신의 WeChat 플랫폼에서 메시지 푸시 기능을 활성화합니다.

자세한 내용은 공식 위키에서 확인할 수 있습니다: https://developers.weixin.qq.com/miniprogram/introduction/custom.html#%E5%A1%AB%E5%86%99%E6%B6% 88%E6%81%AF %E6%8E%A8%E9%80%81%E9%85%8D%E7%BD%AE

2단계: 자체 백엔드 완성

전제 조건: 서버는 다음을 수행할 수 있습니다. WeChat으로 액세스할 수 있습니다.

프로세스: 사용자가 이벤트를 시작한 후 WeChat 서버에 데이터 패킷을 보냅니다. 메시지 푸시 서비스(첫 번째 단계)를 활성화하면 WeChat 서버가 데이터를 처리하고 전달합니다. 형식은 xml 또는입니다. 귀하에 따라 WeChat 백엔드 선택에서 json을 선택했습니다. WeChat은 사용자의 특정 메시지에 응답하려면 인터페이스를 통해 귀하에게 데이터 패킷을 반환합니다. WeChat 서버에 대한 응답 데이터 패킷에는 고객 서비스의 openid가 포함되어 있습니다. 자세한 내용은 코드를 참조하세요.

<?php
header(&#39;Content-type:text&#39;);
define("TOKEN", "mytoken");

class Mini extends Controller{
    private $appid = &#39;&#39;;
    private $secret = &#39;&#39;;
    public function check(){     //校验服务器地址URL
        if (isset($_GET[&#39;echostr&#39;])) {
            $this->valid();
        }else{
            $this->responseMsg();
        }
    }
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            header(&#39;content-type:text&#39;);
            echo $echoStr;
            exit;
        }else{
            echo $echoStr.&#39;+++&#39;.TOKEN;
            exit;
        }
    }
    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
    
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
    
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
    public function responseMsg()
    {
        $postStr = file_get_contents(&#39;php://input&#39;);//因为我的环境是php7
        if (!empty($postStr) && is_string($postStr)){
            $postArr = json_decode($postStr,true);
            if(!empty($postArr[&#39;MsgType&#39;]) && $postArr[&#39;MsgType&#39;] == &#39;text&#39;){   //文本消息
                $fromUsername = $postArr[&#39;FromUserName&#39;];   //发送者openid
                $toUserName = $postArr[&#39;ToUserName&#39;];       //小程序id
                $textTpl = array(
                    "ToUserName"=>$fromUsername,
                    "FromUserName"=>$toUserName,
                    "CreateTime"=>time(),
                    "MsgType"=>"transfer_customer_service",
                );
                exit(json_encode($textTpl));
            }elseif(!empty($postArr[&#39;MsgType&#39;]) && $postArr[&#39;MsgType&#39;] == &#39;image&#39;){ //图文消息
                $fromUsername = $postArr[&#39;FromUserName&#39;];   //发送者openid
                $toUserName = $postArr[&#39;ToUserName&#39;];       //小程序id
                $textTpl = array(
                    "ToUserName"=>$fromUsername,
                    "FromUserName"=>$toUserName,
                    "CreateTime"=>time(),
                    "MsgType"=>"transfer_customer_service",
                );
                exit(json_encode($textTpl));
            }elseif($postArr[&#39;MsgType&#39;] == &#39;event&#39; && $postArr[&#39;Event&#39;]==&#39;user_enter_tempsession&#39;){ 
                $fromUsername = $postArr[&#39;FromUserName&#39;];  

           $data = array(
                               "touser"=>$fromUsername,
                               "msgtype"=>"link",
                                "link"=>[
                                    "title"=>&#39;this is title&#39;,
                                    "description"=> "Is Really A Happy Day",
                                    "url":=>"URL",
                                    "thumb_url"=>"THUMB_URL"
                                ]
                           );
          $json = json_encode($data,JSON_UNESCAPED_UNICODE); 
                $access_token = $this->get_accessToken();
                $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
                //将数据返给微信服务器进行转发。
                $this->curl_post($url,$json);
                
            }else{
                exit(&#39;aaa&#39;);
            }
        }else{
            echo "";
            exit;
        }
    }
  
    public function get_accessToken(){
        if(cache(&#39;access_token&#39;)){
            return cache(&#39;access_token&#39;);
        }
        /* 不在有效期,重新发送请求,获取access_token */
        else{
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appid}&secret={$this->secret}";
            $result = curl_get_https($url);
            $res = json_decode($result,true);   //json字符串转数组
            if($res){
                cache(&#39;access_token&#39;,$res[&#39;access_token&#39;],7100);
                return cache(&#39;access_token&#39;);
            }else{
                return &#39;api return error&#39;;
            }
        }
    }
    /**
     * @Author   callmelx
     * @DateTime 2018-10-06
     * @return   [type]     [description]
     */
    public function curl_post($url,$data=&#39;&#39;){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //curl_setopt($curl, CURLOPT_HTTPHEADER, $headers );
        $output = curl_exec($curl);
        if (curl_errno($curl)) {
            echo &#39;Errno&#39;.curl_error($curl);//捕抓异常
        }
        curl_close($curl);
        if($output == 0){
            echo &#39;success&#39;;exit;
        }
    }
}

토큰 확인이 항상 실패하는 경우 주의해야 할 몇 가지 함정이 있습니다.

1 서버의 token이 현재 토큰과 동일한지 확인하는 것이 좋습니다.

2. 코드에 전혀 문제가 없고 토큰에도 전혀 문제가 없는데도 여전히 오류가 발생하는 경우 서버의 파일 권한을 확인하는 것이 좋습니다. 문제가 있는 경우 TP 프레임워크를 사용하는 경우 런타임이 777로 설정되어 있는지 확인하세요. 755로 설정하면 여전히 작동하지 않을 수 있습니다.

추천 학습:

미니 프로그램 개발

위 내용은 미니 프로그램 고객 서비스 기능 활성화 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
win11内存完整性要不要开win11内存完整性要不要开Jan 06, 2024 am 08:53 AM

win11和win10一样,为了保护系统推出了内存完整性功能,但是很多朋友不知道这个功能有什么用,那么win11内存完整性要不要开呢,其实这与电脑系统有关系。win11内存完整性要不要开:答:如果电脑配置高,或者只是日常办公影音可以开;如果我们的电脑配置较差,或者追求高性能的话不要开。win11内存完整性相关介绍:1、内存完整性原理是硬件虚拟化创建隔离的环境。2、它保护好我们的系统,保护内存安全。3、缺点是,开启该功能后会随时运行,占用内存,降低性能。4、而且一旦开启,关闭起来也会比较麻烦,一定

如何启用Win11的VBS功能如何启用Win11的VBS功能Dec 25, 2023 pm 02:09 PM

要是之前将vbs关闭之后想要开启了,也是可以开启的,我们可以使用命令代码将其开启,下面一起来看看如何开启vbs吧,其实还是很简单的。win11vbs如何开启:1、首先我们点击“开始菜单”。2、然后点击“windows终端”。3、接着输入“bcdedit/sethypervisorlaunchtypeauto”。4、然后重启电脑,打开开始菜单,在搜索栏中搜索“系统信息”。5、然后找打“基于虚拟化的安全性”是否开启即可。

Win7如何开启vt虚拟化Win7如何开启vt虚拟化Jun 29, 2023 pm 02:47 PM

  Win7如何开启vt虚拟化?有用户因为在自己的电脑上使用了手机模拟器,但是在运行软件的时候,提示我们的电脑没有开启vt虚拟化功能。那么我们怎么去主板中开启这个功能,很多小伙伴不知道怎么详细操作,小编下面整理了win7系统在主板开启vt虚拟化功能教学,如果你感兴趣的话,跟着小编一起往下看看吧!  win7系统在主板开启vt虚拟化功能教学  1、首先我们重启电脑,使用热键进入bios设置。  2、点击右下角的AdvancedMode。  3、在高级选项中选择CPU设置。  4、然后找到下方的VT

win10如何开启电脑摄像头权限的介绍win10如何开启电脑摄像头权限的介绍Jul 11, 2023 am 11:57 AM

在win10系统中,很多用户会跟好朋友或家人视频聊天,或者要拍照的时候就会用到摄像头功能,可是一些win10系统用户却发现电脑无法打开摄像头提示无权限,这样就无法视频聊天了,该怎么处理呢,随小编一起来看看具体的解决方案。1、首先查看一下相机权限有没有开启。“win+i”快捷键打开设置窗口,这时候我们就可以看到隐私下方的相机了,点击它。2、左侧栏找到相机,右侧我们就可以看到此设备的相机的访问权限已关闭,点击更改。3、选择开启即可,下面就可以打开摄像头啦。以上就是win10开启电脑摄像头权限的详细操

win10如何启用以太网禁用:详细步骤win10如何启用以太网禁用:详细步骤Jan 03, 2024 pm 09:51 PM

经常有使用win10系统的小伙伴问以太网禁用怎么开启,其实这个操作非常的简单,需要去进入网络的设置中才可以进行,接下来小编带大家一起来看看吧。win10以太网禁用怎么开启:1、首先点击右下角的网络连接图标,打开网络和Internet设置。2、然后去点击以太网。3、之后点击“更改适配器选项”。4、此时可以右击“以太网”,选择禁用就可以了。

如何在Windows 10中启用麦克风权限如何在Windows 10中启用麦克风权限Jan 02, 2024 pm 11:17 PM

最近很小伙伴发现电脑麦克风打不开,而现如今无论是台式电脑还是笔记本电脑都会带有麦克风的功能,这也为我们提供了大大的方便,但有很多的朋友在使用的过程中会突然发现自己的电脑麦克风没有了声音,下面小编就来教给大家电脑麦克风打开该怎么解决。具体的一起来看看吧。win10麦克风权限在开启的方法1、在Windows10系统下打开录音机时,弹出“您需要在设置中设置麦克风”的提示。2、这时我们可以点击屏幕左下角的开始按钮,在弹出的菜单中选择“设置”菜单项。3、在打开的Windows设置窗口中点击“隐私”图标。4

开启Win11的休眠模式的方法开启Win11的休眠模式的方法Jan 08, 2024 pm 02:45 PM

当我们要长时间离开电脑,但是又不想关机的时候,就可以让电脑进入休眠模式,不过在更新win11后,我们找不到win11休眠模式怎么开启了,其实只要在控制面板里打开即可。win11休眠模式怎么开启方法一:使用开始菜单点击底部开始菜单,接着点击电源按钮,在其中就能休眠了。方法二:运用高级用户菜单1、在桌上面的搜索框中搜索并打开“控制面板”,点开“硬件和声音”选项,点击电源选项下的“更改电源按钮的功能”。2、进入后,点击“更改当前不可用的设置”,、最后勾选“休眠”,并保存就能执行休眠功能了。方法三:指令

体验共享功能的开启步骤——Win10如何操作?体验共享功能的开启步骤——Win10如何操作?Dec 28, 2023 pm 02:36 PM

最新版的Windows10系统提供了体验共享功能,可以通过共享方便快速的与附近的电脑进行数据交换,那么怎么样开启Windows10系统的体验共享功能呢?下面跟小编一起来看看吧。Win10开启体验共享功能的详细步骤在Win10系统中,右键点击桌面上的“开始”按钮,选择“设置”的菜单项。然后,在系统设置窗口中,点击一下左侧边栏的“体验共享”菜单选项。在右侧窗口点击并找到“跨设备共享”的设置项,打开“允许其他设备上的应用”。最后我们选择“附近的任何人”菜单项,这样就可以与附近设备进行共享文件。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기