C\#위 챗 개발 제1장
1.위 챗 공식 계 정 이 있어 야 합 니 다.
2.당신 도 테스트 마이크로 신 호 를 신청 할 수 있 습 니 다.링크 는 당신 에 게http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
그리고 뮤 직 비디오 를 만 들 려 면 몇 번 만 vs 시 키 면 됩 니 다.이것 은 쓸데없는 말 이 아니다
이 어 일반 처리 프로그램 을 만 들 고 이름 을 마음대로 지어 야 합 니 다.테스트 통과 가 중요 합 니 다.서둘러 야 합 니 다.
/// <summary>
///
/// </summary>
/// <returns></returns>
/// * token、timestamp、nonce
/// * sha1
/// * signature , 。
private bool CheckSignature()
{
var token = "token";
var signature = HttpContext.Current.Request.QueryString["signature"];
var timestamp = HttpContext.Current.Request.QueryString["timestamp"];
var nonce = HttpContext.Current.Request.QueryString["nonce"];
var echostr = HttpContext.Current.Request.QueryString["echostr"];
string[] ArrTmp = { token, timestamp, nonce };
Array.Sort(ArrTmp); //
var tmpStr = string.Join("", ArrTmp);
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//
if (tmpStr.ToLower() == signature)
{
return true;
}
return false;
}
이 코드 는 위 챗 공식 번호 중[개발]-[기본 설정]에서 당신 이 쓴 Token 과 1 대 1 영패 통신 악 수 를 하 는 것 과 같 습 니 다.서로 통 하면 당신 은 해결 한 셈 입 니 다!해결 은 뒷이야기 이 고,아직 일 을 다 하지 못 했 으 니,이어서 써 라!
어떻게 배치 하 느 냐 가 문제 입 니 다.아,땅콩 껍질 로 테스트 를 해 야 합 니 다.적어도 반나절 동안 놀 았 는데 통 하 는 지 알 아야 합 니 다!
아래 그림 보기:왼쪽 땅콩 껍질 설정-오른쪽 iis 사이트 게시 바 인 딩
이 그림 을 보고 너 도 다음 에 어떻게 노 는 지 알 겠 지?로 컬 iis 에 도 메 인 이름 이 붙 었 습 니 다.이 건 정말 말라리아 야..
아래.우 리 는 코드 를 더 했다.발송 과 자동 답장 테스트 를 설정 하여 놀 수 있 는 지 확인 합 니 다.
#region
/// <summary>
/// XML
/// </summary>
private void ReceiveXml()
{
var requestStream = HttpContext.Current.Request.InputStream;
var requestByte = new byte[requestStream.Length];
requestStream.Read(requestByte, 0, (int)requestStream.Length);
var requestStr = Encoding.UTF8.GetString(requestByte);
if (!string.IsNullOrEmpty(requestStr))
{
//
var requestDocXml = new XmlDocument();
requestDocXml.LoadXml(requestStr);
var rootElement = requestDocXml.DocumentElement;
if (rootElement == null) return;
var wxXmlModel = new WxXmlModel
{
ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText,
FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText,
CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText,
MsgType = rootElement.SelectSingleNode("MsgType").InnerText
};
switch (wxXmlModel.MsgType)
{
case "text"://
wxXmlModel.Content = rootElement.SelectSingleNode("Content").InnerText;
break;
case "image"://
wxXmlModel.PicUrl = rootElement.SelectSingleNode("PicUrl").InnerText;
break;
case "event"://
wxXmlModel.Event = rootElement.SelectSingleNode("Event").InnerText;
if (wxXmlModel.Event != "TEMPLATESENDJOBFINISH")//
{
wxXmlModel.EventKey = rootElement.SelectSingleNode("EventKey").InnerText;
}
break;
default:
break;
}
ResponseXML(wxXmlModel);//
}
}
#endregion
#region
private void ResponseXML(WxXmlModel WxXmlModel)
{
var QrCodeApi = new QrCodeApi();
var XML = "";
switch (WxXmlModel.MsgType)
{
case "text"://
XML = ResponseMessage.GetText(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.Content);
break;
case "event":
switch (WxXmlModel.Event)
{
case "subscribe":
if (string.IsNullOrEmpty(WxXmlModel.EventKey))
{
XML = ResponseMessage.GetText(WxXmlModel.FromUserName, WxXmlModel.ToUserName, " ");
}
else
{
XML = ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey);//
}
break;
case "SCAN":
XML = ResponseMessage.ScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey);//
break;
}
break;
default://
break;
}
HttpContext.Current.Response.Write(XML);
HttpContext.Current.Response.End();
}
#endregion
위의 발송,수신,WhApi.ashx 처리 프로그램 파일 에 있 습 니까?분명히 말 하고 싶 었 어,허허!공식 플랫폼 에서 악수 에 성 공 했 으 니 뭔 가 를 보 내 봐 야 겠 지~
다음 그림 은 응답 파일 과 자동 으로 일치 하 는 수신 방법 입 니 다.서 두 르 지 마 세 요.제 가 이 파일 을 업로드 하 겠 습 니 다!
설정 이 하나 더 없습니다.vs 설정[디 버 깅]-[프로 세 스 에 추가]입 니 다.아래[모든 사용자 프로 세 스 표시]항목 만 체크 하면 w3wp.exe 를 찾 을 수 있 습 니 다.이러한 프로 세 스 가 여러 개 있다 면[사용자 이름]열 을 확인 하 십시오.프로그램 풀 이름 과 같은 것 을 선택 하면 ok,추가 점 을 누 르 고 추가 확인 하 십시오!
다음재 밌 다.
위 챗 은 그 테스트 공중 번 호 를 청소 하고 사용자 정의 메 시 지 를 보 내 서 어떤 답장 이 있 는 지 보 세 요.위의 번 거 로 운 설정 은 정지점 디 버 깅 을 할 수 있 습 니 다.그렇지 않 으 면 그렇게 많은 것 을 하 는 것 도 의미 가 없 죠?발송 과 수신 이 당신 이 설정 한 것 과 일치 하 는 지 보 세 요.그러면 ok 입 니 다.
이렇게...다 썼 습 니 다.
멋 진 주제 공유:ASP.NET 위 챗 개발 튜 토리 얼 집계여러분 의 공 부 를 환영 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.