接入脚本interface.php实现代码,脚本interface.php
接入脚本interface.php实现代码,脚本interface.php
承接上文的WeChatCallBack
在WeChatCallBack类的成员变量中定义了各种消息都会有的字段,这些字段在init函数中赋值。同时也把解析到的XML对象作为这个类的成员变量$_postObject并在init中赋值,目的是在实现具体公众账号的业务逻辑时,具体的各类消息的特殊字段可以通过它来获取。
process函数时实现具体公众账号的业务逻辑时需要重载的函数,默认的实现是返回一个“未实现”的错误提示。
本文的重点是接入脚本,接入脚本是项目根目录的interface.php,其代码清单如下文所示:
require_once dirname(__FILE__) . '/common/GlobalFunctions.php';
function checkSingnature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = WEIXIN_TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = shal( $tmpStr );
if( $tmpStr == $signature ) {
return true;
} else {
return false;
}
}
if(checkSignature()) {
if($_GET["echostr"]) {
echo $_GET["echostr"];
exit(0);
}
} else {
// 恶意请求: 获取来源IP, 并写入日志
$ip = getIp();
interface_log(ERROR, EC_OTHER, 'malicious: ' . $ip);
exit(0);
}
function getWeChatObj($toUserName) {
if($toUserName == USERNAME_FINDFACE) {
require_once dirname(__FILE__) . '/class/
WeChatCallBackMeiri10futu.php' ;
return new WeChatCallBackMeir10futu();
}
if($toUserName == USERNAME_MR) {
require_once dirname(__FILE__) . '/class/
WeChatCallBackMeir10futu.php' ;
return new WeChatCallBackMeir10futu();
}
if($toUserName == USERNAME_ES) {
require_once dirname(__FILE__) . '/class/
WeChatCallBackEchoServer.php' ;
return new WeChatCallBackEchoServer();
}
require_once dirname(__FILE__) . '/class/WeChatCallBcak.php' ;
return new WeChatCallBack();
}
function exitErrorInput() {
echo 'error input!' ;
interface_log(INFO, EC_OK, "***** interface request end ******") ;
interface_log(INFO, EC_OK, "********************** ******") ;
interface_log(INFO, EC_OK, "") ;
exit( 0 );
}
$postStr = file_get_contents ( "php://input" );
interface_log(INFO, EC_OK, "");
interface_log(INFO, EC_OK, "*****************************");
interface_log(INFO, EC_OK, "***** interface request start *****");
interface_log(INFO, EC_OK, 'request: ' . var_export($_GET, ture)) ;
if (empty ( $postStr )) {
interface_log ( ERROR, EC_OK, "error input!" );
exitErrorInput();
}
// 获取参数
$postObj = simplexml_load_string ( $postStr, 'SimpleXMLElement',
LIBXML_NOCDATA ) ;
$toUserName = ( string ) trim ( $postObj->ToUserName ) ;
if (! $toUserName) {
interface_log ( ERROR, EC_OK, "error input!" ) ;
exitErrorInput() ;
} else {
$wechatObj = getWeChatObj ( $ toUserName ) ;
}
retStr = $ wechatObj->process ();
interface_log(INFO, EC_OK, "***** interface request end *****") ;
interface_log(INFO, EC_OK, "****************************") ;
interface_log(INFO, EC_OK, "");
?>
Interface.php逻辑描述:
1.使用checkSignature函数验证请求是否合法,在不合法的情况下,记录恶意的来源IP。
2.获取POST数据,解析XML数据,根据ToUserName来决定是发往哪一个公众账号的消息,然后加载对应的文件,获得对应的对象(getWeChatObj函数)。
3.调用对象的init函数初始化对象。
4.调用对象的process函数处理公众账号逻辑,得到返回消息字符串。
5.返回消息。
获取来源IP函数:
function getIp ()
{
if (isset($_SERVER)) {
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"] ;
} else if (isser($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"] ;
} else {
$realip = $SERVER["REMOTE_ADDR"];
}
} else {
if (getenv(""HTTP_X_FORWARDED_FOR")) {
$realip = getenv("HTTP_X_FORWARDED_FOR") ;
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP") ;
} else {
$realip = getenv("REMOVE_ADDR") ;
}
}
return $realip;
}
___________over____________
是第二类增值电信业务中的移动网信息服务业务的短消息接入代码,分为全网和地网两类,其中全网sp接入代码为1066开头的全网经营性sp接入代码,和1069开头的全网非经营性sp接入代码;地网sp接入代码分为1062开头经营性和1063开头非经营性。全网sp接入代码的申请机构是工业和信息化部,地网接入代码的申请机构是地方的通信管理局,那么申请sp接入代码需要提交哪些资料呢? sp接入代码申请材料1、短消息类服务接入代码申请报告(号码位长、适用范围、联系人联系电话);2、短消息类服务接入代码(省内使用)申请表;3、短消息类服务接入代码使用承诺书;4、增值电信业务经营许可证(业务类别:短信息服务)原件及复印件;5、营业执照副本原件及复印件;6、技术方案、业务规划等。
每个地区的接入代码是不同的
你只能拨打10086转人工服务了
或者你告诉我电话号码归属地才能帮你查询!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제









Cutting은 포괄적인 편집 기능, 가변 속도 지원, 다양한 필터 및 뷰티 효과, 풍부한 음악 라이브러리 리소스를 갖춘 비디오 편집 도구입니다. 이 소프트웨어에서는 비디오를 직접 편집하거나 편집 스크립트를 만들 수 있지만 어떻게 해야 합니까? 이번 튜토리얼에서는 에디터가 스크립트를 편집하고 만드는 방법을 소개합니다. 제작 방법: 1. 컴퓨터에서 편집 소프트웨어를 클릭하여 연 다음 "Creation Script" 옵션을 찾아 클릭하여 엽니다. 2. 크리에이티브 스크립트 페이지에서 '스크립트 제목'을 입력한 후, 개요에 촬영 내용에 대한 간략한 소개를 입력합니다. 3. 개요에서 "스토리보드 설명" 옵션을 어떻게 볼 수 있나요?

블루 스크린 코드 0x0000001로 수행할 작업 블루 스크린 오류는 컴퓨터 시스템이나 하드웨어에 문제가 있을 때 나타나는 경고 메커니즘입니다. 코드 0x0000001은 일반적으로 하드웨어 또는 드라이버 오류를 나타냅니다. 사용자가 컴퓨터를 사용하는 동안 갑자기 블루 스크린 오류가 발생하면 당황하고 당황할 수 있습니다. 다행히도 대부분의 블루 스크린 오류는 몇 가지 간단한 단계를 통해 문제를 해결하고 처리할 수 있습니다. 이 기사에서는 독자들에게 블루 스크린 오류 코드 0x0000001을 해결하는 몇 가지 방법을 소개합니다. 먼저, 블루 스크린 오류가 발생하면 다시 시작해 보세요.

Linux 시스템에서 .sh 파일을 실행하는 방법은 무엇입니까? Linux 시스템에서 .sh 파일은 일련의 명령을 실행하는 데 사용되는 셸 스크립트라는 파일입니다. .sh 파일 실행은 매우 일반적인 작업입니다. 이 기사에서는 Linux 시스템에서 .sh 파일을 실행하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 방법 1: 절대 경로를 사용하여 .sh 파일을 실행합니다. Linux 시스템에서 .sh 파일을 실행하려면 절대 경로를 사용하여 파일 위치를 지정할 수 있습니다. 구체적인 단계는 다음과 같습니다. 터미널을 엽니다.

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? 소셜 미디어의 등장으로 WeChat은 사람들의 일상 생활에 없어서는 안될 커뮤니케이션 도구 중 하나가 되었습니다. 그러나 많은 사람들이 동일한 휴대폰에서 동시에 여러 WeChat 계정에 로그인하는 문제에 직면할 수 있습니다. Huawei 휴대폰 사용자의 경우 듀얼 WeChat 로그인을 달성하는 것은 어렵지 않습니다. 이 기사에서는 Huawei 휴대폰에서 듀얼 WeChat 로그인을 달성하는 방법을 소개합니다. 우선, 화웨이 휴대폰과 함께 제공되는 EMUI 시스템은 듀얼 애플리케이션 열기라는 매우 편리한 기능을 제공합니다. 앱 듀얼 오픈 기능을 통해 사용자는 동시에

장치를 원격으로 프로그래밍해야 하는 경우 이 문서가 도움이 될 것입니다. 우리는 모든 장치 프로그래밍을 위한 최고의 GE 범용 원격 코드를 공유할 것입니다. GE 리모콘이란 무엇입니까? GEUniversalRemote는 스마트 TV, LG, Vizio, Sony, Blu-ray, DVD, DVR, Roku, AppleTV, 스트리밍 미디어 플레이어 등과 같은 여러 장치를 제어하는 데 사용할 수 있는 리모컨입니다. GEUniversal 리모컨은 다양한 기능과 기능을 갖춘 다양한 모델로 제공됩니다. GEUniversalRemote는 최대 4개의 장치를 제어할 수 있습니다. 모든 장치에서 프로그래밍할 수 있는 최고의 범용 원격 코드 GE 리모컨에는 다양한 장치에서 작동할 수 있는 코드 세트가 함께 제공됩니다. 당신은 할 수있다

우리는 기술 애호가이든 스크립팅 기술을 향상시키려는 전문가이든 초보자를 위해 이 Windows PowerShell 스크립팅 자습서를 디자인했습니다. PowerShell 스크립팅에 대한 사전 지식이 없는 경우 이 문서는 기본 사항부터 시작하여 귀하에게 맞게 조정됩니다. PowerShell 환경의 설치 단계를 익히는 데 도움을 주고 PowerShell 스크립트의 주요 개념과 기능을 안내해 드립니다. PowerShell 스크립팅에 대해 더 자세히 알아볼 준비가 되었다면 이 흥미로운 학습 여정을 함께 시작해 보세요! WindowsPowerShell이란 무엇입니까? PowerShell은 Microsoft에서 개발한 하이브리드 명령 시스템입니다.

Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법 소셜 소프트웨어의 인기와 개인 정보 보호 및 보안에 대한 사람들의 강조가 높아지면서 WeChat 복제 기능이 점차 주목을 받고 있습니다. WeChat 복제 기능을 사용하면 사용자가 동일한 휴대폰에서 여러 WeChat 계정에 동시에 로그인할 수 있으므로 관리 및 사용이 더 쉬워집니다. Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 것은 어렵지 않습니다. 다음 단계만 따르면 됩니다. 1단계: 휴대폰 시스템 버전과 WeChat 버전이 요구 사항을 충족하는지 확인하십시오. 먼저 Huawei 휴대폰 시스템 버전과 WeChat 앱이 최신 버전으로 업데이트되었는지 확인하세요.

프로그래밍 언어 PHP는 다양한 프로그래밍 논리와 알고리즘을 지원할 수 있는 강력한 웹 개발 도구입니다. 그중 피보나치 수열을 구현하는 것은 일반적이고 고전적인 프로그래밍 문제입니다. 이 기사에서는 PHP 프로그래밍 언어를 사용하여 피보나치 수열을 구현하는 방법을 소개하고 구체적인 코드 예제를 첨부합니다. 피보나치 수열은 다음과 같이 정의되는 수학적 수열입니다. 수열의 첫 번째와 두 번째 요소는 1이고 세 번째 요소부터 시작하여 각 요소의 값은 이전 두 요소의 합과 같습니다. 시퀀스의 처음 몇 가지 요소
