WeChat 애플리케이션이 본격화되고 있으며 많은 기업에서 Information Express에 참여하기를 희망하고 있습니다. 이는 비즈니스 기회이자 기술적인 방향이므로 시간이 있을 때 WeChat 관련 개발에 대해 연구하고 배우는 것이 하나의 방법이 되었습니다. 일일 계획에서 중요한 것. 이 시리즈 기사에서는 WeChat의 관련 개발 프로세스와 관련 경험 요약을 단계별 관점에서 포괄적으로 소개하고 모든 사람이 관련 개발 프로세스를 이해할 수 있기를 바랍니다. 이 에세이는 주로 WeChat 개발 프로세스의 예비 준비와 일부 초기 작업 소개에 중점을 둡니다.
이 글을 쓰기 일주일 전, 저는 주로 위챗 퍼블릭 플랫폼의 일부 소개 글과 관련 인터페이스 지침을 참고하고 C# 코드 개발을 결합하여 우리 회사의 포털 인터페이스를 정리하고 위챗을 작업으로 구현했습니다. 진행됨에 따라 회사 계정의 예비 사용자 상호 작용 및 정보 표시 작업에 점점 더 많은 기능이 추가될 수 있으며, 애플리케이션 관점에서 WeChat 인터페이스를 확장하여 WeChat 인터페이스에 대한 기술적 탐구와 이해를 실현할 수 있기를 바랍니다. .
1. WeChat 계정
WeChat 플랫폼 API를 개발하고 사용하려면 WeChat 공개 플랫폼(https://mp.weixin.qq.com/)에 등록하고 서비스를 받아야 합니다. 계정 또는 구독 계정은 주로 기업과 조직을 위한 계정입니다. 구독 계정은 주로 조직과 개인을 위한 계정입니다.
일부 고급 인터페이스를 사용하려면 서비스 계정과 고급 인증이 필요할 수 있습니다. 계좌 등록 과정에서는 신청서를 다운로드 받아 인쇄한 후 직인을 찍어야 합니다. 또한 신청자는 신분증과 함께 사진을 찍어(좀 이상하네요 ㅎㅎ) 업로드해야 합니다. 일반적으로 검토를 위해 서버에 전송하면 승인이 빨리 이루어질 수 있습니다.
회사 이름으로 서비스 계정을 신청했습니다. 계정이 등록되면 기본 인터페이스에 관련 정보가 표시됩니다. 또한 QR 코드가 적용됩니다. 회사 계정을 입력하기 위한 QR 코드는 확인 대화 상자를 따르므로 매우 편리합니다. 다음은 제가 신청한 회사 계정의 QR 코드입니다. 바로 스캔할 수 있습니다.
2. WeChat 메뉴 정의
WeChat에는 두 가지 메뉴 정의 방식이 있는데, 하나는 편집 모드이고 다른 하나는 개발 모드입니다. 즉, 개발 모드를 채택하면 편집 모드를 사용할 수 없으며 그 반대의 경우도 마찬가지입니다. 편집 중인 메뉴는 실제로 관리가 가능하지만, 위챗에서는 지원하지 않아서 많이 아쉽습니다.
일반적인 상황에서 방금 WeChat 번호를 신청한 경우 편집 메뉴를 사용하여 테스트하고 지침에 따라 일부 메뉴를 편집할 수 있습니다. WeChat에서는 24시간 이내에 업데이트된다고 하지만 일반적으로 매우 빠르게 업데이트되며, 가장 빠른 경우에는 1~2분 이내에 업데이트되므로 기분이 좋습니다.
개발자 모드를 사용하려면 위챗 요구사항에 맞게 서버에 페이지 링크를 넣어야 합니다. C#을 사용하여 개발하는 경우에는 ***.ashx라는 이름 지정 방법을 사용하고 일반 처리를 사용하면 됩니다. Asp.NET 프로그램이면 됩니다. 일반 페이지를 사용할 필요가 없습니다.
개발 모드 메뉴를 사용하면, 즉 WeChat API를 호출하여 메뉴를 생성할 수 있습니다. WeChat API(WeChat에는 호출할 API가 많습니다)를 호출하려면 여러 매개변수의 중요성을 알아야 합니다. 따라서 개발 모드가 켜지면 아래와 같이 이러한 매개변수가 나열됩니다.
3. 위챗 접속을 위한 링크 처리
위에서 언급한 것처럼 메뉴나 기타 API 호출을 하기 위해 개발 모드를 신청하는 경우, WeChat 접속 테스트는 귀하가 입력한 링크가 존재하고 WeChat의 콜백 테스트를 성공적으로 통과할 수 있는지 확인하는 것을 의미합니다. 위챗에서는 PHP 페이지 처리에 대한 예시를 C#으로 개발하면 검색이 가능하고, 제가 처리하는 방법은 다음과 같습니다.
일반 처리 프로그램을 만든 후 처리 페이지에 처리 로직을 추가합니다. POST가 아닌 콘텐츠인 경우 WeChat에서 수행하는 Get 테스트를 의미하며 일부 처리 로직을 추가하여 제공해야 합니다. POST 모드인 경우 나중에 소개할 인터페이스 메시지에 대한 WeChat 서버의 요청 작업입니다.
/// <summary> /// 微信接口。统一接收并处理信息的入口。 /// </summary> public class wxapi : IHttpHandler { public void ProcessRequest(HttpContext context) { string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST") { using (Stream stream = HttpContext.Current.Request.InputStream) { Byte[] postBytes = new Byte[stream.Length]; stream.Read(postBytes, 0, (Int32)stream.Length); postString = Encoding.UTF8.GetString(postBytes); } if (!string.IsNullOrEmpty(postString)) { Execute(postString); } } else { Auth(); //微信接入的测试 } }
일반적으로 Auth 기능에서는 관련 매개변수를 획득한 후 처리하여 WeChat 서버로 반환합니다.
string token = "****";//你申请的时候填写的Token string echoString = HttpContext.Current.Request.QueryString["echoStr"]; string signature = HttpContext.Current.Request.QueryString["signature"]; string timestamp = HttpContext.Current.Request.QueryString["timestamp"]; string nonce = HttpContext.Current.Request.QueryString["nonce"];
완전한 Author 함수 코드는 다음과 같습니다. 여기서 비즈니스 로직 관리를 용이하게 하기 위해 비즈니스 로직을 새로운 클래스로 추가로 추출했습니다.
/// <summary> /// 成为开发者的第一步,验证并相应服务器的数据 /// </summary> private void Auth() { string token = ConfigurationManager.AppSettings["WeixinToken"];//从配置文件获取Token if (string.IsNullOrEmpty(token)) { LogTextHelper.Error(string.Format("WeixinToken 配置项没有配置!")); } string echoString = HttpContext.Current.Request.QueryString["echoStr"]; string signature = HttpContext.Current.Request.QueryString["signature"]; string timestamp = HttpContext.Current.Request.QueryString["timestamp"]; string nonce = HttpContext.Current.Request.QueryString["nonce"]; if (new BasicApi().CheckSignature(token, signature, timestamp, nonce)) { if (!string.IsNullOrEmpty(echoString)) { HttpContext.Current.Response.Write(echoString); HttpContext.Current.Response.End(); } } }
WeChat 매개변수 CheckSignature에 서명하고 반환하는 코드는 다음과 같습니다
/// <summary> /// 验证微信签名 /// </summary> public bool CheckSignature(string token, string signature, string timestamp, string nonce) { string[] ArrTmp = { token, timestamp, nonce }; Array.Sort(ArrTmp); string tmpStr = string.Join("", ArrTmp); tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) { return true; } else { return false; } }
4. 개발 방법을 사용하여 메뉴를 생성합니다
WeChat 인증을 성공적으로 통과하면 개발 모드에서 API를 호출하고 마음대로 메뉴를 만들 수 있습니다.
메뉴를 생성하려면 다음 위치를 통해 API 처리 인터페이스에 들어갈 수 있습니다.
들어가시면 WeChat이 여러 메시지의 처리를 여러 카테고리로 나누었음을 알 수 있습니다.
WeChat 인터페이스를 사용하여 WeChat 포털 애플리케이션을 개발하는 C# 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!