微信公众平台开发者URL接入的疑问:
分别用ASP.NET MVC与WebService写了接入验证的方法。
微信的要求是:
若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
在ASP.NET MVC测试接入成功。
可是同样的方法写到WebService里面并设置WebService允许通过GET方法请求,我自己用浏览器Get请求一样返回了echostr参数的内容。可是接入微信后测试表明微信却根本不会发Get请求过来。
换成ASP.NET MVC 又可以。
希望园子的朋友帮忙看看这是哪里出了问题
链接是http://smartwifi.vicp.net/WeiXinService.asmx/InterFace?token=1×tamp=1&nonce=1&echostr=1111
Asp.Net MVC 同 WebService 不同之处在于,前者支持 HTTP 重定向。Web Service 也支持重定向,但是采用的是 WS-Addressing 协议。
请问这个有什么办法处理吗 。函数内部用的Response,write写的 返回的不是XML格式的数据
还是希望用WS来做服务端
@大芝麻: 那你先得把用 Asp.Net 接入的流程说清楚,也就是请求/响应是如何在客户端浏览器、你的服务器、微信服务器之间传递的。
@Launcher: 我把真个好流程说下流程是这样的:
WS服务器:.net WebService 程序
微信服务端:公众平台服务号
用户客户端:加入了服务号的微信用户
验证过程是:
-》微信服务端绑定WS服务端URL
-》微信服务器发送GET请求到绑定的WS服务端地址URL上(http://smartwifi.vicp.net/WeiXinService.asmx/InterFace),GET请求会在URL后面携带四个参数:token、timestamp、nonce、echostr。前三个用于WS服务端确定GET请求来自微信,暂时不用管。
-》WS服务端InterFace函数原样返回GET请求的echostr参数内容给微信服务端,则接入生效。
@大芝麻: 你这个流程跟“用户客户端:加入了服务号的微信用户”没有关系,是这样的吗?
@Launcher: 是的没有关系。目前只是WS服务端接入微信服务端
@大芝麻: 微信服务端绑定WS服务端URL —— 咋绑定?
@Launcher: InterFace 函数内同就是简单的
InterFace(string token,string timestamp,string nonce,string echostr)
{
if(请求来自微信)
{
Response.write(echostr);
}
}
@Launcher:绑定是通过微信公众平台绑定的。在开发者中心
@大芝麻: 放假了,过年了,年后见,拜拜!
@Launcher: 哈哈 好多 新年快乐,期待您的帮助
@大芝麻: 唉是我粗心大意吧第一个参数名写错了
token 改成signature 就行了