由于才接触微信开发平台的相关操作,对于这方面有些问题要请教下大佬们:
1:在 开发-->>基本配置里面,这里所填写的URL和Token需要求那些原则?为什么会token验证失败? 他和测试号管理-->>接口配置信息 里面所填的URL有什么区别呢?
2:而且接口配置信息里面的URL和基本配置里面填的一样为啥还要配置失败?
url 地址不对,.net 里面貌似没有.cs文件可以直接请求吧
用.php,.ashx都没得行
@逢玉绿:
protected void Page_Load(object sender, EventArgs e) { try //仅仅是第一次绑定微信时认证通过 { string signature = Request["signature"].ToString(); string timestamp = Request["timestamp"].ToString(); string nonce = Request["nonce"].ToString(); string echostr = Request["echostr"].ToString(); //随机数 Response.Write(echostr); } }
这是一个aspx 页面的内容, url地址指向这个页面,就可以了
@百鸟朝凤:
这样不得行
@逢玉绿: 要填写你发布好的地址啊.....,你用的是webapi么? 地址是需要已经备案的域名的..
@百鸟朝凤: 那我在微助起上绑定我自己注册的公众号,然后点击API接口,获取到了URL和Token信息,然后填这个获取到的URL就能配置成功!这是为什么呢?
这样配置起的和域名备案的有啥区别呢?
你的这个URL访问不通
就是啊,要怎么才能填写一个能访问通的呀?
这块应该是你提交的时候,微信会去访问这个地址进行验证,顺便带着一些参数,包含你设置的token,然后你拿着这些参数在后台做下校验,如果校验结果正确则直接返回微信传给你的echoStr这个参数即可
可以使用一般处理程序,代码如下:
public void ProcessRequest(HttpContext context) { string WeiXinToken = "1234";//要和你微信公众平台设置的保持一致 string echoString = context.Request.QueryString["echoStr"]; string signature = context.Request.QueryString["signature"]; string timestamp = context.Request.QueryString["timestamp"]; string nonce = context.Request.QueryString["nonce"]; if (CheckSignature(WeiXinToken, signature, timestamp, nonce)) { if (!string.IsNullOrEmpty(echoString)) { context.Response.Write(echoString); context.Response.End(); } } } /// <summary> /// 验证微信签名 /// </summary> public static 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 = Membership.CreateUser(tmpStr, "SHA1"); tmpStr = tmpStr.ToLower(); if (tmpStr == signature) { return true; } else { return false; } }
@逢玉绿: 把包含这个一般处理程序的项目发布到你的站点,然后在微信公众平台的那个URL设置访问这个一般处理程序即可。
@晨之风: 是把项目发布起吗?然后要URL怎么访问到这个一般处理程序?
@逢玉绿: 发布到你的域名绑定的那个空间里,然后访问你的域名+你的一般处理程序的名字,比如你的域名就是:https://www.fengyu.com,并且该域名已经备案, 假如你的一般处理程序的名字是wx.ashx,并且该一般处理程序文件就在项目根目录,那么微信公众号里就应该写:https://www.fengyu.com/wx.ashx
@晨之风:
那我在微助起上绑定我自己注册的公众号,然后点击API接口,获取到了URL和Token信息,然后填这个获取到的URL就能配置成功!这是为什么呢?
这样配置起的和域名备案的有啥区别呢?
就是上面那个截图!
@逢玉绿: 那说明这个第三方的平台帮你实现了我上面写的那些东西。
@逢玉绿: 区别就是一个你自己开发的,无论是扩展性还是灵活性你都是可控的,而这个第三方平台的你只能局限于这个第三方平台的功能。
@晨之风: 这个第三方平台的功能我在哪里可以看到呢?
@晨之风: 那是不是 比如写了一段代码,由于我连接的是第三方平台的,会不会出现代码执行后无法实现对应这段代码的功能?
而要是自己弄的域名备案运行该代码就可以实现该功能呢?
@逢玉绿: 我不确定你用的这个微助企具体有什么功能,这个你得去这个第三方平台去看下,如果你有自己的已备案域名和空间,把写好的接入程序发布到你已备案的域名下绑定的空间里能正常访问即可。
@晨之风: 那我连接的是第三方平台,那要怎么把写好的接入程序发布到这个第三方平台里使其能正常访问?
@逢玉绿: 这个你得去看你接入的这个第三方平台的帮助文档