PHP 기반 위 챗 공식 번호 개발 절차 상세 설명
개발 모델 은 당연히 프로그램 개발 을 아 는 사람 이 사용 하 는 것 이다.
다음은 위 챗 공중 호 개발 의 간단 한 절 차 를 간단히 말씀 드 리 겠 습 니 다.초보 자 들 이 보면 도움 이 될 것 입 니 다.고 수 는 웃 으 며 지나 가세 요.
1.서버 설정:
A.먼저 이 컴퓨터 에 다음 과 같은 구조의 폴 더 를 만 듭 니 다.(여 기 는 제 습관 입 니 다.참고 하 시기 바 랍 니 다)
MMPN:총 디 렉 터 리 mro message public number 위 챗 공중 번호
backup:백업 디 렉 터 리 는 주로 phop 파일 을 백업 하 는 데 사 용 됩 니 다.수정 할 때마다 원 고 를 백업 합 니 다.
이미지:그림 저장
includes:my sql 설정,smarty 템 플 릿 포함 파일 등 을 포함 합 니 다.
menu:공중 번호 메뉴 정 보 를 저장 하고 txt 문 서 를 저장 하면 됩 니 다.
gr****zx.php:개발 파일,즉 공중 번호 와 연 결 된 프로그램 파일,즉 설 정 된 url 에 대응 하 는 파일
마지막 으로 필요 한 파일 입 니 다.
주 프로그램 파일:gr***zx.php
<?php
define("TOKEN", "aabbc_lzpt");
//
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//
if (!empty($postStr))
{
//
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
// ID
$fromUsername = $postObj->FromUserName;
// ID
$toUsername = $postObj->ToUserName;
//
$form_MsgType = $postObj->MsgType;
//
if($form_MsgType=="event")
{
//
$form_Event = $postObj->Event;
//
if($form_Event=="subscribe")
{
//
/*
$resultStr = "<xml>
<ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
<FromUserName><![CDATA[".$toUsername."]]></FromUserName>
<CreateTime>".time()."</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[ *** ,****]]></Title>
<Description><![CDATA[ ]]></Description>
<PicUrl><![CDATA[http://a.hiphotos.baidu.com/baike/c0%3Dbaike116%2C5%2C5%2C116%2C38/sign=5cae7405f21f3a294ec5dd9cf84cd754/32fa828ba61ea8d32de5a1df950a304e241f5822.jpg]]></PicUrl>
<Url><![CDATA[http://www.baidu.com]]></Url> </item>
<item>
<Title><![CDATA[ ]]></Title>
<Description><![CDATA[]]></Description>
<PicUrl><![CDATA[http://a.hiphotos.baidu.com/baike/c0%3Dbaike116%2C5%2C5%2C116%2C38/sign=5cae7405f21f3a294ec5dd9cf84cd754/32fa828ba61ea8d32de5a1df950a304e241f5822.jpg]]></PicUrl>
<Url><![CDATA[http://www.baidu.com]]></Url> </item>
</Articles>
</xml> ";
*/
//
$reply=" , ****** ";
$resultStr="<xml>
<ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
<FromUserName><![CDATA[".$toUsername."]]></FromUserName>
<CreateTime>".time()."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$reply."]]></Content>
</xml>";
}
else if($form_Event=="CLICK")
{
$form_Event_Key = $postObj->EventKey;
if($form_Event_Key=="V3002_CONTACT")
{
/*
$resultStr = "<xml>
<ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
<FromUserName><![CDATA[".$toUsername."]]></FromUserName>
<CreateTime>".time()."</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[ ]]></Title>
<Description><![CDATA[ !]]></Description>
<PicUrl><![CDATA[http://a.hiphotos.baidu.com/baike/c0%3Dbaike116%2C5%2C5%2C116%2C38/sign=5cae7405f21f3a294ec5dd9cf84cd754/32fa828ba61ea8d32de5a1df950a304e241f5822.jpg]]></PicUrl>
<Url><![CDATA[http://www.baidu.com]]></Url>
</item>
</Articles>
</xml> ";
*/
$reply=" : 222
:0510-88888888";
$resultStr="<xml>
<ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
<FromUserName><![CDATA[".$toUsername."]]></FromUserName>
<CreateTime>".time()."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$reply."]]></Content>
</xml>";
}
}
}
else if($form_MsgType=="location"){
$lng1=$postObj->Location_X;
$lat1=$postObj->Location_Y;
$from_Location_Label=$postObj->Label;
$reply=" :";
$reply.=" ".$lat1."\t ".$lng1." ".$from_Location_Label;
$resultStr = "<xml>
<ToUserName><![CDATA[".$fromUsername."]]></ToUserName>
<FromUserName><![CDATA[".$toUsername."]]></FromUserName>
<CreateTime>".time()."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$reply."]]></Content>
</xml> ";
}
echo $resultStr;
exit;
}
else
{
echo "";
exit;
}
?>
임시 파일:wxsample.php
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "aabbc_lzpt");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
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;
}
}
}
?>
두 파일 의 시작 부분 에 코드 가 있 습 니 다:define("TOKEN","aabbc"lzpt"); 이것 은 token 을 정의 하 는 것 입 니 다.뒤의 값 은 스스로 설정 하지만 위 챗 배경 에 서버 를 설정 하 는 데 사용 해 야 한 다 는 것 을 기억 해 야 합 니 다.B.지금부터 작업 을 시작 합 니 다.우선 gr***zx.php 파일 의 내용(코드)을 임시 파일 의 내용(코드)으로 대체 하여 저장 합 니 다.MMPN 항목 을 서버 에 전송 할 때 주 프로그램 파일 url 은"http://www.****.com/MMPN/fy_hzx/grape_fy_hzx.php'와 같은 형식 으로 경로 가 정확 한 지 확인 하고 위 챗 공중 번호 백 엔 드 개발 자 센터 를 열 고 아래 그림 에서'설정 수정'을 누 르 면 방금 url 을 해당 컨트롤 에 입력 합 니 다.
token 은 방금 기억 해 야 할 token 의 값 입 니 다.일치 해 야 합 니 다.세 번 째'메시지 암호 화 키'는 무 작위 로 생 성 된 다음 제출 할 수 있 습 니 다.
token 이 정확 하고 url 이 정확 하 며 파일 코드 가 틀 리 지 않 으 면 성공 을 알 리 고 다시 누 르 십시오.
C.방금 메 인 프로그램 파일 의 코드 는 임시 적 인 것 입 니 다.다만 등록 인증 token 을 개통 하기 위해 서 입 니 다.성공 한 후에 다시 지우 고 원래 의 내용 으로 복원 할 수 있 습 니 다.(저장 해서 서버 에 업로드)
이렇게 하면 서버 설정 작업 이 끝 납 니 다.
2.메 인 프로그램 파일 의 코드 소개
$form_MsgType = $postObj->MsgType;
$form_MsgType 메시지 유형 은'이벤트','위치'(팬 전송 위치),'문자 유형','이미지 유형'등 으로 나 뉘 며 배경 인터페이스 문 서 를 구체 적 으로 볼 수 있 습 니 다.
$form_Event = $postObj->Event;
$form_이벤트 이벤트 유형 은'구독'(subscribe),'구독 취소'(unsubscribe),'클릭'(CLICK)―메뉴 를 클릭 하지만 클릭 형식의 메뉴 만 을 대상 으로 하고 url 형식의 메뉴 라면 해당 하 는 url 을 직접 열 어 코드 에서 처리 할 필요 가 없다.
팬 들 에 게 답장 하 는 콘 텐 츠 형식 은 보통 문자 나 그림 두 가지 로 코드 에 모두 있다.
3.메뉴 설정
메뉴 설정 은 개발 자 ID 에 있 는 AppID(이것 은 직접 볼 수 있 습 니 다)와 AppSecret(이것 은 숨겨 져 있 을 수 있 습 니 다.공중전화 관리자 인증 을 통 해 신청 을 통 해 확인 해 야 완전 함 을 표시 할 수 있 습 니 다.완전 함 을 표시 한 후에 기록 을 제때에 저장 해 야 다음 에 관리 자 를 찾 지 않 아 도 됩 니 다)를 알 아야 합 니 다.
메뉴 를 설정 하기 전에 access 를 받 아야 합 니 다.token,유효기간 은 2 시간 입 니 다.그림 클릭 하여 access 획득token
그리고 오른쪽 아래 에서'웹 디 버 깅 도구 로 이 인 터 페 이 스 를 디 버 깅 합 니 다'를 누 르 십시오.
appid 와 secret 를 입력 하고"문제 검사"를 누 르 면 제출 합 니 다.
복사 해서 얻 은 accesstoken
사용자 정의 메뉴 다시 선택:
방금 획득 한 accesstoken 복사
인터페이스 목록 이 검색 메뉴 를 선택 했다 면 제출 한 결 과 는 존재 하지 않 습 니 다.맞 습 니 다.아직 메뉴 를 만 들 지 않 았 기 때 문 입 니 다.
그러면 다음 json 형식 코드 를 body 에 복사 하여 제출 합 니 다.
{
"button": [
{
"name": " ",
"sub_button": [
{
"type": "view",
"name": " ",
"url": "http://www.baidu.com",
"sub_button": [ ]
},
{
"type": "click",
"name": " ",
"key": "V1001_QUERY",
"sub_button": [ ]
},
{
"type": "view",
"name": " ",
"url": "http://www.baidu.com",
"sub_button": [ ]
}
]
},
{
"name": " ",
"sub_button": [
{
"type": "view",
"name": " ",
"url": "http://www.baidu.com",
"sub_button": [ ]
},
{
"type": "click",
"name": " ",
"key": "V1001_QUERY",
"sub_button": [ ]
},
{
"type": "view",
"name": " ",
"url": "http://www.baidu.com",
"sub_button": [ ]
}
]
},
{
"name": " ",
"sub_button": [
{
"type": "view",
"name": " ",
"url": "http://www.baidu.com",
"sub_button": [ ]
},
{
"type": "click",
"name": " ",
"key": "V1001_QUERY",
"sub_button": [ ]
},
{
"type": "view",
"name": " ",
"url": "http://www.baidu.com",
"sub_button": [ ]
}
]
}
]
}
제출,알림 성공 메뉴 생 성.
메뉴 내용 중 두 가지 유형(type)이 있 습 니 다.하 나 는 view 입 니 다.이것 은 해당 url 링크 를 직접 엽 니 다.하 나 는 click 입 니 다.이것 은 방금 주 프로그램 파일 에서 key 값 실행 과 관련 된 코드 를 찾 습 니 다.
격식 을 틀 리 지 않 으 면 된다.
메뉴 를 수정 하려 면 먼저 삭제 하고 만 듭 니 다.일반적으로 메뉴 가 바 뀌 면 공중 번 호 는 다시 관심 을 가 져 야 바로 변경 효 과 를 볼 수 있 으 며,그렇지 않 으 면 24 시간 자동 으로 업데이트 된다.
PHP 기반 의 위 챗 공중 호 개발 절차 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 관련 PHP 위 챗 공중 호 개발 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.