眼瞅着砖又要来了,废话不多说,开兑。。。。。。。
一所用技术:
后台接口用的是新项目相关技术(groovy)
微信页面用的是一个前端框架AngularJs,UI选择的weUi。
二开发过程:
- 微信公众号后台配置:
AppID和AppSecret最好记下来,appsecret如果忘了可以重置一下;URl填写的是接收消息的服务器地址,如图:
公众号设置里面一定要设置 网页授权域名,此域名在微信中打开网页时用到,如下图:
三微信支付开发注意事项
微信支付是微信提供的一种支付方式,要认证通过后才有权限,现包括以下几种支付方式,我们用的是公众号支付:
- 微信公众平台 微信支付的配置
开发配置如图:
此处注意的地方:
首先,测试授权目录指的是你调起微信支付的页面所在目录,比如你的支付页面是 http://wx.testroud.com/page/pay.html,此处应该填的就是http://wx.testroud.com/page/,不要填成了后台生成prepay_id的方法路径。
测试的话支付白名单中一定要添加测试的微信号,测试授权目录和支付授权目录不能设置的一样
支付回调URl是支付完成后后台处理逻辑,只在扫码模式下才适用,所以不是扫码支付不用配置
2. 微信支付商户平台配置:
登录页面如图:
这里登录时用谷歌浏览器会比较麻烦,控件检测很麻烦,我用的IE倒是挺方便(IE9版本以上)
秘钥设置如图:
此处的秘钥设置很重要,在调微信服务器接口时会用到,秘钥类型是32位加密字符串,可以用网上的加密工具对自己设定的秘钥进行加密
程序开发注意
支付页面要引入这两个js,jweixin是微信支付的js
点击页面支付按钮时,先向后台发送一个post请求,后台主要是像微信服务器发送指定格式的参数,获得prepay_id,然后按照指定参数格式封装传到页面,
页面接收到后台传回的参数后,通过js调起支付页面:
注意:
- 微信公众平台和微信支付商户平台都需要先配置好
- 后台接口中的每个参数格式及获取方法要严格按照文档中规定的格式
- 后台接口涉及两次签名的获取,第一次是向微信服务器发送请求时,第二次是封装前台数据时的签名获取,第二次签名所使用的时间戳和随机字符串一定和传回前的保持一致,不然会报sdk错误
- 金额的单位是分,所以用户实际输入的金额要在后台转换
- 如果发现js调不起支付页面,首先检查签名是否正确,看返回的错误信息进行相应的调试
自己在微信支付这被坑惨了,好多是因为签名,参数类型的错误,以后开发要多看文档,细心
总结:总感觉自己有时候对自己不够自信,嗯,要改,莫怕,干!;然后是今后研究一项新东西时要有@@虐我千百遍,我待@@如初恋的心态;