>백엔드 개발 >PHP 튜토리얼 >PHP는 WeChat 개발을 위한 사용자 정의 메뉴를 구현합니다.

PHP는 WeChat 개발을 위한 사용자 정의 메뉴를 구현합니다.

墨辰丷
墨辰丷원래의
2018-05-30 16:24:112229검색

이 글은 주로 PHP WeChat 개발의 사용자 정의 메뉴 구현 코드를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

편집 모드와 개발 모드 사이에 충돌이 있습니다. 따라서 WeChat 공식 계정의 개발 모드를 활성화한 후에는 해당 메뉴를 볼 수 없습니다. 하지만 이제 개인 구독 계정은 사용자 정의 메뉴와 같은 고급 개발자 모드를 사용할 수 없지만 테스트 계정을 통해 테스트한 후 코드를 서비스 계정으로 이동할 수 있습니다.

사용자 정의 유형에는 다음이 포함됩니다.

1. 클릭: 클릭 푸시 이벤트
• 사용자가 클릭 유형 버튼을 클릭하면 WeChat 서버는 메시지 인터페이스를 통해 메시지 유형 이벤트 구조를 개발자에게 푸시합니다(참조 메시지 인터페이스 가이드)에 개발자가 입력한 키 값을 가져오면 개발자는 사용자 정의된 키 값을 통해 사용자와 상호 작용할 수 있습니다.

• 보기: 점프 URL
• 보기 유형 버튼인 WeChat을 클릭하면 클라이언트는 개발자가 버튼에 입력한 웹페이지 URL을 엽니다. 이는 웹페이지 인증 인터페이스와 결합하여 기본 사용자 정보를 얻기 위해 기본 사용자 정보를 얻을 수 있습니다.

3. scancode_push: 스캔 코드 푸시 이벤트
• 사용자가 버튼을 클릭하면 WeChat 클라이언트가 스캔 도구를 실행하고, 스캔 코드 작업이 완료된 후 스캔 결과가 표시됩니다. URL, URL이 입력됩니다), QR 코드 스캔 결과는 메시지를 보낼 수 있는 개발자에게 전송됩니다.

4. scancode_waitmsg: 코드를 스캔하여 이벤트를 푸시하고 "메시지 수신" 프롬프트 상자를 팝업하세요
• 사용자가 버튼을 클릭하면 WeChat 클라이언트가 코드 스캔 작업을 완료한 후 활성화됩니다. , 스캔된 코드는 개발자에게 전송됩니다. 동시에 스캔 도구를 치우고 "메시지 수신" 프롬프트 상자가 팝업됩니다. 그러면 개발자로부터 메시지를 받을 수 있습니다.

사용자 정의 유형에는 다음이 포함됩니다.

5. pic_sysphoto: 사용자가 버튼을 클릭하면 시스템이 팝업되어 사진을 보냅니다. 사진 작업이 완료되면 사진이 찍히게 됩니다
개발자에게 이벤트를 보내고 동시에 시스템 카메라를 닫을 수 있으며 나중에 개발자로부터 메시지를 받을 수도 있습니다.

6. pic_photo_or_album: 사용자가 버튼을 클릭하면 WeChat 클라이언트는 사용자가 "사진 찍기" 또는 "를 선택할 수 있는 선택기를 표시합니다. 휴대폰 앨범에서 선택하세요." 사용자가 선택한 후에는 다른 두 가지 프로세스를 거치게 됩니다.

7, pic_weixin: 사용자가 팝업 WeChat 사진 앨범 전송자 버튼을 클릭하면 WeChat 클라이언트가 선택 작업을 완료한 후 WeChat 사진 앨범을 불러옵니다. 개발자 서버에 이벤트를 푸시하고 사진 앨범을 닫으면 나중에 개발자로부터 메시지를 받을 수 있습니다.

코드는 제공됩니다. 서버에 코드를 업로드하고 공식 계정을 다시 팔로우하면 개발 모드에서 사용자 정의 메뉴를 볼 수 있습니다


$appid = '微信公众号的appid'; 
$appsecret = '微信公众号的appsecret'; 
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret=$appsecret"; 
$output = https_request($url); 
$jsoninfo = json_decode($output,true); 
$access_token = $jsoninfo["access_token"]; 
$jsonmenu = '{ 
  "button":[ 
  { 
   "name":"学校系统", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"课程表", 
     "key":"课程表" 
    }, 
    { 
     "type":"click", 
     "name":"个人信息", 
     "key":"个人信息" 
    }, 
    { 
     "type":"click", 
     "name":"平时成绩", 
     "key":"平时成绩" 
    }, 
    { 
     "type":"click", 
     "name":"奖惩记录", 
     "key":"奖惩记录" 
    } 
   ] 
  }, 
  { 
   "name":"技术分享", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"移动WEB开发", 
     "key":"移动WEB开发" 
    }, 
    { 
     "type":"click", 
     "name":"J2EE框架", 
     "key":"J2EE框架" 
    }, 
    { 
     "type":"click", 
     "name":"Android开发", 
     "key":"Android开发" 
    }, 
    { 
     "type":"click", 
     "name":"PHP框架", 
     "key":"PHP框架" 
    } 
   ] 
  },{ 
   "name":"技术支持", 
   "sub_button":[ 
    { 
     "type":"click", 
     "name":"在线客服", 
     "key":"在线客服" 
    }, 
    { 
     "type":"click", 
     "name":"技术分享", 
     "key":"技术分享" 
    }, 
    { 
     "type":"view", 
     "name":"天气预报", 
     "url":"http://m.hao123.com/a/tianqi" 
    } 
   ] 
  } 
 
 ] 
 }'; 
 
 
 //创建菜单实现 
 $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token; 
 $result = https_request($url,$jsonmenu); 
 var_dump($result); 
 function https_request($url,$data = null){ 
  $curl = curl_init(); 
  curl_setopt($curl,CURLOPT_URL,$url); 
  curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0); 
  curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0); 
  if(!empty($data)){ 
   curl_setopt($curl,CURLOPT_POST,1); 
   curl_setopt($curl,CURLOPT_POSTFIELDS,$data); 
  } 
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
  $output = curl_exec($curl); 
  curl_close($curl); 
  return $output; 
 }

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다.


관련 권장 사항:

PHP는 Sina IP 라이브러리를 기반으로 IP 상세 주소를 얻는 방법을 구현합니다.

PHP 실제 정규식 요약

PHP는 예외 처리 클래스 방법을 구현합니다

위 내용은 PHP는 WeChat 개발을 위한 사용자 정의 메뉴를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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