在之前记录了一下做微信公众号支付的过程,但是有些混乱,之前做的内个也不是直接接的微信官方,而是转接的别人在接的微信官方,他们赚个手续费,在这之后因为app停用了一段时间,上游公司把我们的appid给关掉了,所以打算从新接,直接接微信官方,好了这是背景。
我们做的是公众号支付,也就是在微信网页内部进行调取支付插件进行支付的一个过程
所以需要到微信官方开通公众号支付 微信官网:https://pay.weixin..com
1、登录后点击产品中心, 点击公众号支付
进入后就会看到这个页面

因为我的已经开通所以就不需要了
这是官方文档 : https://pay.weixin..com/wiki/doc/api/jsapi.php?chapter=7_3
点击开发配置
进行配置支付授权目录:也就是你的支付页面所在的目录
一定是生产环境的,微信不支持 ip +端口 形式的地址 异步通知也不支持,
所以测试都需要线上真实环境的域名+支付页面所在目录

登录公众号平台进行配置
公众号的按钮在下面
其次设置你的JS接口安全域名:也就是完整域名如:www.baidu.com

配置到这里基本就算完成了
现在我们需要获取几个必须的参数
appid,mch_id ,加密key
基本配置按钮也在下面
显示appid 点击基本配置就会看到了 如:wxf8xxxxxxxxxfca

mch_id 就是你登录微信商户后台的内个号,如:1594xxxxxxxxx98


key 获取,也是在微信商户后台
这个是自己设置的,看你自己设置了,

1. appid APPID (已有)
wxfxxxxxxxxxxxxxca
讯享网
2. mch_id 商户ID (已有)
讯享网147xxxxxxxxxxx54
3. nonce_str 随机字符串 , 生成UUID就可以了;
UUID.randomUUID().toString().trim().replaceAll("-", "");
4. sign 签名 用WXPayUtil中的generateSignature(finalMap<String, String> data, String key)方法,data是将除了sign外,其他10个参数放到map中,key是四大配置参数中的API秘钥(paternerKey)(这里不要着急管它,最后处理它);
5. body 所支付的名称
6. out_trade_no 自己后台生成的订单号,只要保证唯一就好:如“pay31”
7. total_fee 支付金额 单位:分,为了测试此值给1,表示支付1分钱
8. spbill_create_ip IP地址 网上很多ip的方法,自己找,此处测试给“127.0.0.1”
9. notify_url 回调地址:这是微信支付成功后,微信那边会带着一大堆参数(XML格式)请求这个地址多次,这个地址做我们业务处理如:修改订单状态,赠送积分等。Ps:支付还没成功还想这么远干嘛,最后再说。地址要公网可以访问。
10. trade_type 支付类型 咱们是公众号支付此处给“JSAPI”
11. openid 支付人的微信公众号对应的唯一标识,每个人的openid在不同的公众号是不一样的,这11个参数里,最费劲的就是他了,其他的几乎都已经解决,现在开发得到这个参数。
获得openid的部分内容应该不属于微信支付的范畴,属于微信公众号网页授权的东西,详情请参考微信网页授权:
https://mp.weixin..com/wiki?t=resource/res_main&id=mp
获得openid步骤:
第一步:用户同意授权,获取code
https://open.weixin..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 。
通过此链接可以获取code,可以在一个空页面设置一个a标签,链接至其redirect_uri的地址。点击a标签,即可链接到redirect_uri的地址,并携带code。
[html] view plain copy
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52316.html