PHP는 WeChat 공개 플랫폼 계정 사용자 정의 메뉴 class_php 기술을 구현합니다.
이 기사의 예에서는 WeChat 공개 플랫폼 계정의 사용자 정의 메뉴 클래스를 PHP로 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
WeChat 공개 플랫폼 서비스 계정은 맞춤 메뉴를 신청할 수 있습니다. 다른 계정은 당분간 맞춤 메뉴를 지원하지 않습니다. 이는 API를 사용하여 작동할 수 있을 뿐만 아니라 메뉴와 매개변수를 백그라운드에서 직접 정의할 수도 있습니다.
맞춤메뉴 신청
서비스 계정은 사용자 정의 메뉴를 신청할 수 있습니다. QQ를 사용하여 로그인하는 공식 계정은 이메일 로그인으로 업그레이드할 수 있습니다. 이메일을 사용하여 로그인하는 공식 계정은 로그인 이메일 주소를 수정할 수 있으며, 그룹 메시지는 Tencent Weibo에 동기화될 수 있습니다. .
WeChat 공개 플랫폼 계정 API 프로그램
Define("TOKEN", "chenxiang");//改成自己的TOKEN
Define('APP_ID', '');//자체 APPID
Define('APP_SECRET', '');//자체 APPSECRET
$wechatObj = 새로운 wechatCallbackapiTest(APP_ID,APP_SECRET);
$wechatObj->실행();
wechatCallbackapiTest 클래스
{
개인 $fromUsername;
개인 $toUsername;
비공개 $times;
개인 $키워드;
비공개 $app_id;
비공개 $app_secret;
공개 함수 __construct($appid,$appsecret)
{
# 코드...
$this->app_id = $appid;
$this->app_secret = $appsecret;
}
공개 함수 valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
에코 $echoStr;
출구;
}
}
/**
* 프로그램 실행
* @param string $value [설명]
*/
공개 함수 Run()
{
$this->responseMsg();
$arr[]= "당신이 스스로를 죽였을 때, 나는 지금 존재하지 않으며, 모든 정보가 없습니다. 나는 당신의 이름을 따왔습니다^_^";
echo $this->make_xml("text",$arr);
}
공개 함수 responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据
if (!emptyempty($postStr)){
$access_token = $this->get_access_token();//접근액세스 토큰
$this->createmenu($access_token);//创建菜单
//$this->delmenu($access_token);//删除菜单
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$this->fromUsername = $postObj->FromUserName;//发送消息方ID
$this->toUsername = $postObj->ToUserName;//接收消息方ID
$this->keyword = Trim($postObj->Content);//사용용户发送的消息
$this->times = time();//发送时间
$MsgType = $postObj->MsgType;//消息类型
if($MsgType=='이벤트'){
$MsgEvent = $postObj->Event;//获取事件类型
if ($MsgEvent=='subscribe') {//订阅事件
$arr[] = "내가 여기 있습니다. xxx, 내가 여기 있습니다![愉快][玫瑰]";
echo $this->make_xml("text",$arr);
출구;
}elseif ($MsgEvent=='CLICK') {//클릭 이벤트
$ EventKey = $ POSTOBJ- & GT; // 메뉴의 사용자 정의 키 값은 이 값을 기반으로 사용자가 클릭하는 내용을 결정하여 다른 정보를 푸시할 수 있습니다
$arr[] = $EventKey
echo $this->make_xml("text",$arr)
종료
~ ~ }else {
echo "weixin API용 파일입니다!"; 종료
}
}
/**
* access_token 받기
*/
비공개 함수 get_access_token()
{
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->app_id."&secret=".$this->app_secret
$data = json_decode(file_get_contents($url),true)
If($data['access_token']){
$data['access_token'] 반환
}그 외{
"access_token 가져오기 오류"를 반환합니다.
}
}
/**
*메뉴 만들기
* @param $access_token ACCESS_TOKEN 획득
*/
공개 함수 생성 메뉴($access_token)
{
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token
$arr = 배열( '버튼' =>배열(
배열(
'name'=>urlencode("Life Query"),
'sub_button'=>배열(
배열(
'name'=>urlencode("날씨 쿼리"),
'유형'=>'클릭',
'키'=>'VCX_WEATHER'
),
배열(
'name'=>urlencode("신분증 조회"),
'유형'=>'클릭',
'키'=>'VCX_IDENT'
) )
),
배열(
'이름' = & gt; urlencode ("쉬운 엔터테인먼트"),
'sub_button'=>배열(
배열(
'이름' = & gt; urlencode ("스크래핑 음악"),
'유형'=>'클릭',
'키'=>'VCX_GUAHAPPY'
),
배열(
'name'=>urlencode("행운의 바퀴"),
'유형'=>'클릭',
'키'=>'VCX_LUCKPAN'
) )
),
배열(
'name'=>urlencode("내 정보"),
'sub_button'=>배열(
배열(
'name'=>urlencode("내 정보"),
'유형'=>'클릭',
'키'=>'VCX_ABOUTME'
),
배열(
'name'=>urlencode("작업 정보"),
'유형'=>'클릭',
'키'=>'VCX_JOBINFORMATION'
)
)
)
)
);
$jsondata = urldecode(json_encode($arr));
$ch = 컬_초기화();
컬_setopt($ch,CURLOPT_URL,$url);
컬_setopt($ch,CURLOPT_RETURNTRANSFER,1);
컬_setopt($ch,CURLOPT_POST,1);
컬_setopt($ch,CURLOPT_POSTFIELDS,$jsondata);
컬_exec($ch);
컬_닫기($ch);
}
/**
* 쿼리 메뉴
* @param $access_token ACCESS_TOKEN 획득
*/
개인 함수 getmenu($access_token)
{
# 코드...
$url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".$access_token;
$data = file_get_contents($url);
$data를 반환합니다.
}
/**
* 메뉴 삭제
* @param $access_token ACCESS_TOKEN 획득
*/
개인 함수 delmenu($access_token)
{
# 코드...
$url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$access_token;
$data = json_decode(file_get_contents($url),true);
if ($data['errcode']==0) {
# 코드...
사실을 반환;
}그밖에{
거짓을 반환;
}
}
/**
*@param 유형: 텍스트 텍스트 유형, 뉴스 그래픽 유형
*@param value_arr 배열(내용),배열(ID)
*@param o_arr array(array(제목, 소개, 그림, 하이퍼링크),...10개 항목 미만), array(항목 수, ID)
*/
개인 함수 make_xml($type,$value_arr,$o_arr=array(0)){
//=================xml 헤더============
$con="
//=================컨텐츠 유형============
스위치($type){
대소문자 "텍스트":
$con.="
부서지다;
사례 "뉴스":
$con.="
<기사>";
foreach($value_arr as $id=>$v){
if($id>=$o_arr[0]) 중단; 그렇지 않으면 null; //判断数组数不超过设置数
$con.="<항목>
<제목>
<설명>
항목>";
}
$con.="
부서지다;
} //스위치 종료
//=================반환 종료============
$con.="
$con을 반환합니다.
}
개인 함수 checkSignature()
{
$signature = $_GET["서명"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$토큰 = 토큰;
$tmpArr = array($token, $timestamp, $nonce);
정렬($tmpArr);
$tmpStr = 파열( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
사실을 반환;
}그밖에{
거짓을 반환;
}
}
}
?>
이 글이 모든 분들의 PHP 기반 위챗 개발에 도움이 되기를 바랍니다.

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

PHP8에서 매치 표현식은 표현식의 값에 따라 다른 결과를 반환하는 새로운 제어 구조입니다. 1) 스위치 명령문과 유사하지만 실행 명령문 블록 대신 값을 반환합니다. 2) 경기 표현식은 엄격하게 비교되어 (===) 보안을 향상시킵니다. 3) 스위치 명세서에서 가능한 파손을 피하고 코드의 단순성과 가독성을 향상시킵니다.

PHP에서는 예측할 수없는 토큰을 사용하여 CSRF 공격을 효과적으로 방지 할 수 있습니다. 특정 방법은 다음과 같습니다. 1. 형태로 CSRF 토큰을 생성하고 포함시킨다. 2. 요청을 처리 할 때 토큰의 유효성을 확인하십시오.

H5. 미니 프로그램과 앱의 주요 차이점은 다음과 같습니다. 기술 아키텍처 : H5는 웹 기술을 기반으로하며 미니 프로그램 및 앱은 독립적 인 응용 프로그램입니다. 경험과 기능 : H5는 가볍고 사용하기 쉽고 기능이 제한되어 있습니다. 미니 프로그램은 가벼우 며 상호성이 우수합니다. 앱은 강력하고 부드러운 경험이 있습니다. 호환성 : H5는 크로스 플랫폼 호환성이며 애플릿 및 앱은 플랫폼에 의해 제한됩니다. 개발 비용 : H5는 개발 비용이 낮고 중간 미니 프로그램 및 최고 앱이 있습니다. 적용 가능한 시나리오 : H5는 정보 표시에 적합하고 애플릿은 가벼운 응용 프로그램에 적합하며 앱은 복잡한 기능에 적합합니다.

php의 엄격한 유형은 declare (strict_types = 1)를 추가하여 활성화됩니다. 파일 상단에서. 1) 함정 유형 변환을 방지하기 위해 함수 매개 변수 및 리턴 값의 검사 유형 검사를 강요합니다. 2) 엄격한 유형을 사용하면 코드의 신뢰성과 예측 가능성을 향상시키고 버그를 줄이며 유지 관리 및 가독성을 향상시킬 수 있습니다.

회사 보안 소프트웨어 및 응용 프로그램을위한 호환성 문제 및 문제 해결 방법. 많은 회사들이 인트라넷 보안을 보장하기 위해 보안 소프트웨어를 설치할 것입니다. 그러나 보안 소프트웨어 가끔 ...
