公司项目需要接入微信支付,因为主要是在移动端的网页进行支付,所以选择微信支付的H5跳转支付,就是在微信外浏览器通过H5页面直接拉起微信支付,支付完成之后重新跳转回网页。本来以为很简单,没想到。。。。微信支付的坑实在是太多太多了,整整两天都在搞这个(其实真的很简单)。本着"前人栽树,后人乘凉"的精神,我花了点时间总结了一下 Java对接H5微信支付的开发过程,希望给大家一点帮助,能给大家节省点时间 陪女朋友我女朋友差点 剁了我。废话不多说(其实已经说了不少了),开始干活吧。。。。
开发环境
JDK1.8 + tomcat7 + maven + springMvc + spring + eclipse
前期准备
- 申请微信公众平台(获取到appId)
- 申请微信支付(获取到商户号及商户秘钥)
- 获取到内网穿透的域名,我用的NATAPP,方便开发测试
-
申请微信公众平台及微信支付
因为是BOSS准备的,我这里就不多说了,要准备ICP备案的域名,营业执照,还有好多乱七八糟的东西。。。这里我特别强调下,申请微信支付和微信公众平台最好使用QQ浏览器,QQ浏览器,QQ浏览器 -
准备内网穿透域名
因为微信支付成功回调的notify_url必须是真实的域名,开发测试的时候特别麻烦,
需要不断的在线上测试。所以我做了内网穿透,申请一个域名,可以让外网直接访问我们本地服务器的项目。这里安利下NATAPP,基于ngrok的反向代理软件。当然还有花生壳之类的内网穿透服务。
直接下载Windows64位
注册登录就不说了直接购买隧道,新用户能免费申请两条,足够了。家里有矿的可以支持一下,哈哈。要实名认证,还有端口要和你项目一致如8080
我申请的web隧道和TCP隧道,本项目用Web隧道。
复制Web隧道的authtoken,找到刚下载的客户端 natapp.exe。双击进入DOS命令框。DOS命令 natapp -authtoken=刚刚复制的authtoken,回车。