微信公众号(web开发)开发过程中遇到的问题总结

2018-06-18 01:57:53来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

我的公众号开发是基于web项目来开发的,中间还有微信支付,支付宝支付的内容,也算是爬过很多坑了。现在总结一下遇到的开发问题吧。

  1.spring+springmvc+mybatis框架的搭建,这个属于配置问题,百度一下喽

  2.java.security.InvalidKeyException: Illegal key size :

    处理办法: 在官方网站下载JCE无限制权限策略文件

    JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
    JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
    下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
    如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
    如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

  3.打成war时生成的文件很小,这个可能是项目中Deployment Assembly中没有加入Maven Dependencies

  4.WxError [errcode=40163, errmsg=code been used, hints: [ req_id: xf3seA0606th36 ]] 

    微信公众号获取用户信息时需要的code只能使用一次,如果和上次获取的一样则重新获取一次

  5.html文件放到静态资源目录下,即可以直接访问,不需要经过controller层

    在web.xml里面添加文件后缀名的结点

    <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.html</url-pattern>
    </servlet-mapping>

    在spring配置文件spring-mvc.xml里面添加

    <mvc:default-servlet-handler/>

  6.支付宝手机网站验签错误

    支付宝支付的文档比较友好,但还是会有误读的可能,这里可能的错误是:加签时不需要进行urlencode,得到sign之后再对所有参数urlencode

  7.支付宝手机网站异步通知验签失败

    使用的公钥错误,是支付宝公钥,不是RSA2公钥

    由于是在微信公众号里面调用,支付宝支付流程如下:1.前端调后台方法 2.按支付宝的格式对参数进行验签 3.对所有参数urlencode,然后生成url链接返回给前端,4.前端拿到链接后会跳转到外部浏览器进行访问并支付 5.支付成功后调用notify方法

  8.微信公众号获取js-api时,报config invalid signature

    每个页面的url不同,var url = location.href.split('#')[0];

  9.微信支付时调用接口失败

    用的github上的sdk,以为不会有bug,但还是不可避免地碰到了,修改了源码的signtype,用MD5,而不是HMACSHA256,下单与验签的signtype要保持一致。

    微信支付的流程:1.前端调后台方法统一下单,2.下单成功后再验签,3.验签得到的参数与其他参数一起回传到前端,4.前端再发起js-ajax请求调用微信支付,5.支付成功后会调用notify方法,notify方法链接要提前在微信支付平台配置好

  10.com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

    Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。

    解决的办法:jdbc url添加参数autoReconnect=true

    

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:CentOS 6.8 安装JDK8

下一篇:WebService之soap类型的服务和rest类型的服务