微信6.2开发笔记

来源:互联网 发布:我打软件技巧 编辑:程序博客网 时间:2024/06/08 00:22
一般的开发信息就不多说了,具体可以从官方文档了解。下面就记下我开发过程中遇到的一些奇葩坎和需要注意的地方。

对微信请求消息的处理

微信与我提供的微信处理接收页面(官方称为服务器地址,目前仅支付80端口)的交互,分为两种请求方式post和get。

微信服务器配置启用的时候,也就是设置对微信请求的处理的页面的时候,这时候是一次get请求,返回随机字符串则表示验证通过,即启用成功。
用户使用微信发送的消息事件什么的都是用post方式的请求,与此同时也会用get的请求推送参数到处理页面用来验证是否为微信发送过来的请求。

那么,对于微信请求的消息返回我们想返回的消息给用户,就完成了与微信的交互。

 

对微信的调试

用日志查看,上传一次程序,再看一眼日志……如此循环,心情糟糕透了。
用花生壳调试,不用上传,实时调试,效率提升了不少。资料:http://www.cnblogs.com/zskbll/p/4074855.html

另外,因为微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。所以当调试的时候,因为断点的停留,导致多个请求同时进来不好调试 ,所以用个变量把它限定在第一个请求。

private static int requestNum = 0;//测试的时候方便调试只用第一次请求的参数(微信无相应会重复请求3次的响应)public void ProcessRequest(HttpContext context){      requestNum++;      if (requestNum == 1)      {          Auth();      }}

 

微信支付(v3)

两种支付请求:

1.使用JS API发起支付请求
2.使用Native API发起支付请求


从官方下载了支付的C#demo,打开NativePayPage.aspx页面,即扫码支付(Native API)模式二,在发起“统一下单接口”请求的时候,在HttpService.Post处报错“连接不到远程服务器”,或者“请求超时”。

另外,在模式一扫码的时候,微信提示“获取商户订单信息超时或商户返回httpcode非200”


解决方法:在HttpService类里的Post和Get请求里注释以下代码(我不知道这个代理设置有什么用,反正注释掉就可以了,知道原因的麻烦告诉我)

//(代理暂不知道有何用,暂注释掉,否则请求报错)//设置代理//WebProxy proxy = new WebProxy();//proxy.Address = new Uri(WxPayConfig.PROXY_URL);//request.Proxy = proxy;

 

扫码模式(Native API):

模式一:线下二维码支付(我想应该是这样)


流程:

1.商户将商户订单ID生成二维码

2.用户扫码

3.微信处理扫码结果,请求商户设置Native原生支付的支付回调URL(在官方demo里的页面为NativeNotifyPage.aspx)

4.在NativeNotifyPage.aspx里调用微信的“统一下单接口”

5.弹出输入密码的支付界面,用户确认支付

6.微信请求支付结果通知回调url(在官方demo的WxPayConfig类里的NOTIFY_URL)

7.在NOTIFY_URL里做业务处理

 

模式二:线上扫码支付(比如官网接入扫码支付)


流程:

1.调用微信的“统一下单接口”生成二维码

2.用户扫码

3.弹出输入密码的支付界面,用户确认支付

4.微信请求支付结果通知回调url(在官方demo的WxPayConfig类里的NOTIFY_URL)

5.在NOTIFY_URL里做业务处理

 

模板消息

扫码支付成功之后,对于未关注公众号的用户发送不了模板消息。在未关注公众号的情况下即使支付成功,并在支付成功界面勾选(默认勾选)关注公众号也不会发送消息。

发送“模板消息”后微信服务器会发送“模板消息”是否发送成功的消息给接收消息页面。但我不知道接收到消息之后要如何处理,如果发送失败是要写入异常日志呢,还是做其他用处。

 

JS支付

1.报“redirect_uri参数错误”
原因:“网页授权获取用户基本信息”接口的授权回调页面域名未设置。

2.用官方提供的JS支付页面,支付成功后没有执行回调函数。
解决:官方提供页面里的submit按钮使用的是asp.net的服务器控件,另外改成<button></button>也不用,原因不详。改成<input type="button" />和<a>标签都可以使用,即执行回调函数。

3.报“不允许跨号支付”
解决:取消关注公众号,再重新关注后进行支付。

 

H5页面

微信里的图片和微信内置浏览器均有缓存,导致更改了图片或样式后预览没有及时发生改变。

解决缓存的方法:

1.在文件后面加上参数,比如:/css/index.css?v=1221 
2.另外博客园的网友说这样也可以,我觉得应该可以,没有印证。

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /><meta http-equiv="Pragma" content="no-cache" /><meta http-equiv="Expires" content="0" />

 

自定义菜单

自定义菜单里的key相当于一个标识,点击时会发送请求到商户设置的消息处理页面,我们则根据key做相关处理。 

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 工人在工地干活被吊车撞了怎么办 小米手机记不得保密柜密码怎么办 华为手机文件保密柜密码忘了怎么办 超市寄存柜密码纸丢了怎么办 佳明软件安装不到手机上怎么办 最好的朋友的抢了自己的活怎么办 支付宝被实名验证上限了怎么办 装修预留插座被挡了一半怎么办 衣服放在柜子里面有味道怎么办 河北发货一个柜到天津港口怎么办 家用潜水泵更换电容后压力小怎么办 无塔供水井水水位低了怎么办 应急部成立林场的专业灭火队怎么办 路由器我恢复出厂设置断网了怎么办 多囊卵巢综合症不来月经怎么办 天刀普通血战苍梧城没有太白怎么办 天涯明月刀把沈妄言打入水中怎么办 天涯明月刀刷本队友技能太花怎么办 手机收所有短信时显示被隐藏怎么办 div放图片多出的空白怎么办 我14岁射精让我记忆力差了怎么办 qq闪退聊天记录全没了怎么办 木瓜奇迹忘记升级过头转职了怎么办 孩子进入青春期什么坏事都干怎么办 母狗狗第一次来月经应该怎么办图 社保断了想补缴怎么办?这些要知道 换工作社保断了一个月怎么办 北京社保中间断了几个月怎么办 农保和社保都交了医保怎么办 如果交了社保结婚生孩子断了怎么办 南京社保中间断了几个月怎么办 mu大师等级技能点加点太慢怎么办 永恒纪元戒不是本职业套装石怎么办 全民奇迹忘记在哪个区了怎么办 全民奇迹安卓的忘记那个区了怎么办 大天使之剑h5所在服人少怎么办 买的裙子因为好看没有勇气穿怎么办 魅蓝s6锁屏密码忘了怎么办 u盘被占用不能安全弹出怎么办 洛克王国得到了魔攻巨蟹座怎么办 在育碧下载游戏下一半不下了怎么办