>위챗 애플릿 >위챗 개발 >C# WeChat 개발(서버 구성)

C# WeChat 개발(서버 구성)

高洛峰
高洛峰원래의
2017-01-17 10:28:571522검색

편집자는 WeChat 개발에 관심이 많으며 인터넷에서 관련 기사를 검토하여 모두가 함께 배울 수 있도록 정리했습니다.

1. 계정 등록 - 서버 구성 입력

https://mp.weixin.qq.com/에서 WeChat 공개 플랫폼에 계정을 등록하세요.

서비스 번호는 회사에서 적용한 위챗 공개 계정의 경우 구독 번호는 개인이 적용하며 상대적으로 개인 권한이 적습니다.

위챗 공개 플랫폼 공식 홈페이지에 로그인한 후, 공개 플랫폼 백엔드 관리 페이지 - 개발자 센터 페이지의 "구성 수정" 버튼을 클릭하고 서버 주소(URL), 토큰 및 EncodingAESKey를 입력합니다. 여기서 URL은 개발자가 WeChat 메시지 및 이벤트를 수신하는 데 사용하는 인터페이스 URL입니다. 토큰은 개발자가 작성하고 서명을 생성하는 데 사용할 수 있습니다. 보안을 확인하기 위해 토큰은 인터페이스 URL에 포함된 토큰과 비교됩니다. EncodingAESKey는 개발자가 수동으로 입력하거나 임의로 생성되며 메시지 본문 암호화 및 암호 해독 키로 사용됩니다.

동시에 개발자는 일반 텍스트 모드, 호환성 모드, 보안 모드 등 메시지 암호화 및 암호 해독 방법을 선택할 수 있습니다. 모드 선택 및 서버 구성은 제출 후 즉시 적용됩니다. 개발자는 신중하게 작성하고 선택하는 것이 좋습니다. 암호화 및 복호화의 기본 상태는 일반 텍스트 모드입니다. 호환 모드 및 보안 모드를 선택하려면 관련 암호화 및 복호화 코드를 미리 구성해야 합니다. 자세한 내용은 메시지 본문 서명 및 암호화 및 복호화에 대한 설명서를 참조하세요.

C# WeChat 개발(서버 구성)

URL은 포트 80이어야 하며 서버에만 있어야 합니다! ! !

2. URL이 유효한지 확인하세요.

C# WeChat 개발(서버 구성)

private string Token = ConfigurationManager.AppSettings["Token"];
 
[HttpGet]
[ActionName("Index")]
public ActionResult Get(string signature, string timestamp, string nonce, string echostr)
{
 if (CheckSignature.Check(signature, timestamp, nonce, Token))
 {
 return Content(echostr);//返回随机字符串则表示验证通过
 }
 else
 {
 return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");
 }
}
/// <summary>
/// 检查签名是否正确
/// </summary>
/// <param name="signature"></param>
/// <param name="timestamp"></param>
/// <param name="nonce"></param>
/// <param name="token"></param>
/// <returns></returns>
public static bool Check(string signature, string timestamp, string nonce, string token = null)
{
 return signature == GetSignature(timestamp, nonce, token);
}
 
/// <summary>
/// 返回正确的签名
/// </summary>
/// <param name="timestamp"></param>
/// <param name="nonce"></param>
/// <param name="token"></param>
/// <returns></returns>
public static string GetSignature(string timestamp, string nonce, string token = null)
{
 token = token ?? Token;
 var arr = new[] { token, timestamp, nonce }.OrderBy(z => z).ToArray();
 var arrString = string.Join("", arr);
 //var enText = FormsAuthentication.HashPasswordForStoringInConfigFile(arrString, "SHA1");//使用System.Web.Security程序集
 var sha1 = System.Security.Cryptography.SHA1.Create();
 var sha1Arr = sha1.ComputeHash(Encoding.UTF8.GetBytes(arrString));
 StringBuilder enText = new StringBuilder();
 foreach (var b in sha1Arr)
 {
 enText.AppendFormat("{0:x2}", b);
 }
 
 return enText.ToString();
}

확인에 성공한 후에만 더 많은 기능을 사용할 수 있습니다. 제출이 실패하는 경우 로그를 직접 작성하여 이유를 확인할 수 있습니다.

편집자도 WeChat 개발이 처음입니다. 이전에 asp.net WeChat 개발에 대한 여러 기사를 정리한 적이 있습니다. 오늘은 편집자도 초보자이기 때문에 C# WeChat 개발에 대한 관련 지식을 정리하기 시작하겠습니다. 만약 엄격한 부분이나 실수가 있다면 용서해 주시고 함께 발전해 나가도록 합시다.

C# WeChat 개발(서버 구성)에 관한 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.