2014-04-10 1 views
3

WeChat으로 디버깅 공식 계정이 있습니다. 나는 내 공개 URL을 입력하고 토큰 필드에 사용하여 요청을 디버깅 http://admin.wechat.com/debug/sandbox도 시도를 제공 http://admin.wechat.com/debug/WeChat을받지 못합니다. 응답을 따르십시오.

내 ASP.Net [.Net4.5] 웹 API 응용 프로그램의 POST 방법은 다음과 같습니다 :

public HttpResponseMessage PostMessage([FromBody]Strikemedia.Api.WeChat.TextMessage value) 
    { 
     if (value == null) 
     { 
      var richMediaMessage = new RichMediaMessage(); 
      richMediaMessage.touser = value.FromuserName; 

      //Create Article 
      var item = new Article() 
      { 
       title = "Didn't receive anything back", 
       description = "Mind entering 'test'", 
       picurl = "URL", 
       url = "URL" 
      }; 
      var articles = new List<Article>(); 
      articles.Add(item); 
      richMediaMessage.articles = articles; 
      richMediaMessage.articleCount = articles.Count; 
      return Request.CreateResponse(HttpStatusCode.OK, richMediaMessage, "application/json"); 
     } 

     var exploded = value.Content.Split(' ')[0]; 

     var richMedia = new RichMediaMessage(); 
     richMedia.touser = value.FromuserName; 

     //Create Article 
     var article = new Article() { 
      title = response.KeywordDescription, 
      description = response.Response, 
      picurl = "URL", 
      url = "URL" 
     }; 
     var _articles = new List<Article>(); 
     _articles.Add(article); 
     richMedia.articles = _articles; 
     richMedia.articleCount = _articles.Count; 

     //Return response 
     var resp = Request.CreateResponse(HttpStatusCode.OK, richMedia, "application/json"); 
     //resp.RequestMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); 
     return resp; 
    } 

JSON 형식의 RichMessageType으로 응답해야하며 XML 형식으로 수신됩니다.

내가 누락되었거나 뭔가를 간과 했습니까?

답변

1

admin.wechat.com에 URL과 토큰을 제출했으며 URL과 토큰이 승인되었음을 확인할 수 있습니까?

또한 XML을 받고 XML로 응답하지 않습니다. json 응답.

당신이 한 번 봐 있었나요 : http://youtu.be/kB20Zf51QWU 를 그리고이 http://youtu.be/_2FSzD2B2F0

이것은 당신이 그래서 아직도 경우

"메시지 API에 대한 가이드 위챗"구글 때 찾을 수있는 XML에 대한 설명서입니다 admin.wechat.com에서 앱을 제출할 때 성공 메시지를받지 못하면 여기에 테스트 URL을 보낼 수 있습니다. 이 URL을 찾으려면 액세스 로그를 확인하여 정확히 어떤 URL이 방문하는지 확인하십시오. 그런 다음 여기에 게시하십시오. Wechat으로 URL을 클릭하면 브라우저에 소스를 볼 때 화면에 "echostr"만 표시되는 것을 볼 수 있습니다. 아니 XML 아니오 HTML 그냥 echostr.

"echostr"전후에 공백이나 개행 문자가 없는지 확인하십시오. 소스를 볼 때 그것은 echostr GET param의 값인 한 줄이어야합니다.

XML 응답은 실제로 사용자의 메시지에 응답하기 시작할 때만 제공됩니다. 현재 Wechat은 보안 설정이 제대로되어 있는지 확인하고 있습니다.

또한 서버의 부하가 분산되어 있으면 서명 유효성 검사를 건너 뛰고 echostr GET 매개 변수가 전달되고 "echostr"매개 변수 만 화면에 표시 할 때 자체 유효성 검사를 수행해야합니다.

+0

필요한 echostr을 제출하려는 시도가 많은데도 불구하고 패널에서 계속 "구성 실패"오류가 발생합니다. – Cipher

+0

weChat에서 제공하는 요청 URL은 다음과 같습니다. http://api.strikemedia.co.za/WeChat/WeChatTest/api/request?signature=e6448061ece1c0f30e6364b8584f0c76a2db1150&echostr=6496574268439509975×tamp=1397132240&nonce=119870065 우리 측 – Cipher

+0

에서 텍스트/일반 응답을 반환 을 api.strikemedia.co 경우 확인하시기 바랍니다. 로드 밸런싱 솔루션입니까? 서명 유효성 검사를 제거해야하는 경우 – DeveloperX