首先呢感谢万能的度娘、cdsn上面的大神、以及微信官方还算OK的文档,让我磕磕绊绊终于不负组织所望搞出了微信支付。。。话不多说,我呢大概把一些可能的坑给大家排一排,第一次发帖,大家凑合着看啊;
1.微信公众号开发首先要有一个公众号,我由于是给公司开发所以我的公众号是企业号(要做公众号认证),认证后不算完,微信公众号的微信支付接口是要申请的:ps:资料要认真填,我在申请的时候就犯了错误,第一次是公司经营范围不知道就写了其他,结果没通过。。。第二次是把老总的身份证有效期填错了。。。总之要想审核通过这块要注意,错一次就要多等一天,虽然微信官方说审核期1-5天,其实也就一天。
2.微信公众号支付接口申请通过之后,微信官方会给你之前填的资料里的银行账号打随机的款数做为验证凭据,验证通过会把商户账号密码给你发过来,我们要进入商户后台设置商户秘钥。还需要一个域名,要ICP备案的,原材料大概就这些。
3.微信支付流程官方文档说的很详细,网上帖子的代码也没什么问题,只需要根据自己的业务逻辑稍作封装,然后把公众号的appId,公众号秘钥,商户编号,商户秘钥配上就可以了。
4.支付过程中,除了商户生成的一些数据(订单、金额等)之外,主要还是要获取支付者也就是用户的openId,获取openId的具体方式见网页授权接口,里面有详细的重定向方式,这里要说的是,在我们设置重定向路径之前,要在微信公众号里配置网页授权域名和js接口安全域名:首先要下载MP_verify_8cbS0wmonMMcS4hI.txt文档,然后放在一个路径中,然后网页授权域名和js接口安全域名要配置成文档所在的目录。配置完成后用户点击重定向按钮便可以获取code然后就可以按照网页授权的步骤获取用户的openId了。
5.在微信开发文档中一个比较坑的地方就是没有详细说明支付授权,网上比较主流的代码是在jsp发起请求,然后进入controller层,获取prepare_id后将相关数据封装传到pay.jsp在jsp中用微信自己封装的方法去调起支付页面,这个支付授权的目录就是到方法之前.例如:域名/项目名称/WeiXinController/pay.action 将pay.action去掉就可以了。在网上看到一个大神的帖子,在pay.jsp中引用了一个微信的远程js,我是没有引用的,也好使,如果按照上面的步骤来还不行不妨也粘上试试。
PS:第一次写稿子,不喜勿喷,如果有不明白的地方,可以留言,我会定期查看,会尽量帮助大家解决。。。。