이 글은 WeChat 포털 및 애플리케이션 개발을 위한 C#의 첫 번째 글을 중심으로 WeChat 인터페이스 사용 방법을 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
WeChat 애플리케이션이 본격적으로 운영되고 있으며, 많은 회사에서 정보를 신속하게 파악하고 싶습니다. 이것은 비즈니스 기회이자 기술적 방향이므로 시간이 있을 때 WeChat의 발전에 대해 연구하고 배우는 것이 나의 일상 계획에서 중요한 것 중 하나가 되었습니다. 이 시리즈 기사에서는 WeChat의 관련 개발 프로세스와 관련 경험 요약을 단계별 관점에서 포괄적으로 소개하고 모든 사람이 관련 개발 프로세스를 이해할 수 있기를 바랍니다. 이 에세이는 주로 WeChat 개발 프로세스의 예비 준비와 일부 초기 작업 소개에 중점을 둡니다.
이 글을 쓰기 일주일 전, 저는 주로 WeChat 공개 플랫폼의 일부 소개 글과 관련 인터페이스 설명을 참조하고 C# 코드 개발을 결합하여 회사의 포털 인터페이스를 구성하고 예비 WeChat 업무 계정을 구현했습니다. 사용자 상호 작용 및 정보 표시 작업이 더욱 발전함에 따라 점점 더 많은 기능이 추가될 수 있으며, 애플리케이션 관점에서 WeChat 인터페이스를 확장하여 WeChat 인터페이스에 대한 기술적 탐구와 이해를 실현할 수 있기를 바랍니다.
1. WeChat 계정
WeChat 플랫폼 API를 개발하고 사용하려면 WeChat 공개 플랫폼에 등록하고 서비스 계정 또는 구독 계정이 있어야 합니다. 서비스 계정은 주로 기업 및 조직용입니다. 조직과 개인 간에는 특정 차이가 있으며 다양한 필요에 따라 해당 계정을 신청할 수 있습니다.
일부 고급 인터페이스를 사용하려면 서비스 계정과 고급 인증이 필요할 수 있습니다. 계정 등록 과정에서는 지원서양식을 다운로드하여 인쇄한 후 직인을 찍어야 합니다. 또한 지원자는 신분증과 함께 사진을 찍어(좀 이상하네요 ㅎㅎ) 업로드해야 합니다. 일반적으로 검토를 위해 서버에 전송됩니다.
회사 이름으로 서비스 계정을 신청했습니다. 계정이 등록되면 메인 인터페이스에 관련 정보가 표시됩니다. 또한 QR 코드를 스캔하면 들어갈 수 있습니다. 회사의 WeChat 후속 확인 대화 상자가 매우 편리합니다. 다음은 제가 신청한 회사 계정의 QR 코드입니다. 바로 스캔할 수 있습니다.
2. WeChat 메뉴 정의
WeChat에는 두 가지 메뉴 정의 방법이 있습니다. 하나는 편집 모드이고 다른 하나는 개발 모드입니다. 개발 모드에서는 편집 모드를 사용할 수 없으며 그 반대의 경우도 마찬가지입니다. 편집 중인 메뉴는 실제로 관리가 가능하지만, 위챗에서는 지원하지 않아서 많이 아쉽습니다.
일반적인 상황에서 방금 WeChat 번호를 신청한 경우 편집 메뉴를 사용하여 테스트하고 지침에 따라 일부 메뉴를 편집할 수 있습니다. WeChat에서는 24시간 이내에 업데이트된다고 하지만 일반적으로 매우 빠르게 업데이트되며, 가장 빠른 경우에는 1~2분 이내에 업데이트되므로 기분이 좋습니다.
개발자 모드를 사용하려면 WeChat의 요구 사항에 따라 서버에 페이지 링크를 배치해야 합니다. C#을 사용하여 개발한 경우 ***.ashx의 명명 방법을 사용하고 의 일반 핸들러를 사용할 수 있습니다. Asp.NET , 일반 페이지를 사용할 필요가 없습니다.
개발 모드 메뉴를 사용하세요. 즉, WeChat API를 호출하여 메뉴를 만들 수 있습니다. WeChat API(WeChat에는 호출할 수 있는 API가 많이 있습니다)를 호출하려면 여러 매개변수의 중요성을 알아야 하므로 개발 모드를 열면 아래와 같이 이러한 매개변수가 나열됩니다.
3. WeChat 접속을 위한 링크 처리
위에서 언급한 것처럼 메뉴나 기타 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(); } } }
而对微信参数的签名并返回的操作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、使用开发方式创建菜单
一旦你顺利通过微信的认证,那么它就让你以开发方式调用它的API,并且可以随意创建你的菜单了。
创建菜单的方式,你可以通过下面的位置进入到他的API处理界面里面。
进入后,你会发现微信把很多消息的处理,分门别类放到不同的分类里面了。
其实我们现在初步要做的就是如何看看,使用代码方式调用创建菜单,进入菜单的API调试界面里面。
你会发现里面还需要输入一个Access_Token的东西,这个是一个会话身份认证,因此你还需要到接口里面去找这个如何创建的。下面图中的两个红色部分,就是我们开始的时候,微信提示我们“开发者凭据”的两个关键参数。
弄完这些,你就可以根据获得的Access_Token进行菜单的创建工作了,根据菜单的定义,它分为几类,可以分为URL方式(View),事件方式(Click)。
click:用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event 的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;
view:用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的url值(即网页链接),达到打开网页的目的,建议与网页授权获取用户基本信息接口结合,获得用户的登入个人信息。
5、我创建的菜单案例
在随笔的开始,我公布了一个二维码,一旦使用微信扫一扫,进行关注服务号后,那么就可以看到我自己创建的菜单了。主菜单一般最多三列,每个主菜单还可以有子菜单,他们的文字都有所限制的。
我们来看看我公司的微信门户菜单,看起来是不是很酷呢。
위 내용은 WeChat 포털 및 애플리케이션의 C# 개발에서 WeChat 인터페이스를 사용하는 방법(1)(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!