微信支付--Java
JSAPI(微信公众号支付)
官方文档[1]
开发前准备
•获取微信支付所需要的参数(appid、appsecret、mch_id、paternerKey)
首先要想支持微信支付,必须拥有两个账号:①微信公众已认证的服务号;②微信商户平台账号。微信公众平台:
公众APPID:wx15*****a8
APPSECEPT :** 微信商户平台:
商户ID:14****42
API密钥:5d5****b35b
【注】商户的API密钥:在商户平台的账户中心下:需要用户自行下载证书及安装。
•内网穿透工具[2]
微信只接受80端口。
一、开发逻辑
开发步骤
1.设置支付目录2.设置授权域名3.授权获取用户信息(openId未知)4.统一下单5.微信内H5调起支付6.支付结果通知
支付目录设置到支付URL上一级目录
设置授权域名
•配置授权域名:微信公众平台->设置->公众号设置
1、支付过程需要获取用户openid,必须经过网页授权配置才可以,要不然获取不到openid。
2、查看网页回调地址是否已经配置好,在这里我将所有的域名配置都配置好了。(腾讯的坑)必须将MP_verify_MHYOHtHKmJzSkCj0.txt文件放置到项目的根目录下,如配置域名:dvnq2b.natappfree.cc,则访问http://dvnq2b.natappfree.cc/MP_verify_MHYOHtHKmJzSkCj0.txt时访问得到就表示配置成功。
设置支付目录
•配置支付目录:微信商户平台->产品中心->开发配置->公众号支付授权目录
配置此目录是项目代码中“微信支付”所在支付页面地址.目录必须以“/”结尾,至少设置二级以上目录,eg: **发起支付页面为:http://baidu.com/index.html,则目录配置为:http://baidu.com/;
如发起支付页面为:http://baidu.com/wxpay/index.html,则目录配置为:http://baidu.com/wxpay/;下面“代码实例”中的配置为: **http://dvnq2b.natappfree.cc/
获取openId
授权获取用户信息官方文档(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842)
•用户同意授权地址,获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
链接中情求参数说明:
1.redirect_uri参数:授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理。2.scope: 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
eg:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx19c*********&redirect_uri=http%3a%2f%2fwww.***.com%2fpaywx.html&response_type=code&scope=