⽀付jsapi(⽀付)接⼝调⽤
差不多两个⽉前的⼀个项⽬要使⽤线下⽀付本⼈并没有接触过这⽅⾯的知识,作为刚出道的⼩⽩,⼀个⽀付差点把我折磨的死去活来,查看了许多⽂章才把这个功能实现。如今跑到成都重新⼯作,学习的时候也正好写点总结,把⽀付这⼀块的知识整理下。
好了,接下来看⽀付jsapi接⼝是怎么调⽤的
步骤⼀:获取⽀付四⼤参数
⾸先要想⽀持⽀付,必须拥有两个账号
公众平台:账户
公众APPID,APPSECEPT ,商户平台商户ID, API密钥
步骤⼆:平台配置
1.配置⽀付⽬录:商户平台:
配置此⽬录是代码中“⽀付”所在页⾯的地址需要ICP备案。
2.配置授权域名:公众平台:
⽀付过程需要获取⽤户openid,必须经过⽹页授权配置才可以,要不然获取不到openid。
官⽅解释:⽤户在⽹页授权页同意授权给后,会将授权数据传给⼀个回调页⾯,回调页⾯需在此域名下,以确保安全可靠。回调页⾯域名不⽀持IP地址。
javascript登录注册界面第⼀步:⽤户同意授权,获取code
参数:appid:的唯⼀标识
redirect_uri:重定向的url,就是授权后要跳转的页⾯
scope:应⽤授权作⽤域
snsapi_base:不弹出授权页⾯,直接跳转,只能获取⽤户openid
snsapi_userinfo:弹出授权页⾯,可通过openid拿到昵称、性别、所在地
state:重定向后带的参数
⽤户同意后会产⽣⼀个code,只有5分钟时间的有效期。
第⼆步:通过code换取⽹页授权access_token(⽀付只需要openid,获取到access_token之后只需要⾥⾯openid参数)
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",//j⽀付jsapi接⼝需要⽤到的参数
"scope":"SCOPE" }
步骤三调⽤接⼝统⼀下单
统⼀下单API是⽀付的⼀个“统⼀”处理⼊⼝,官⽅给出的地址是
h.weixin.qq/pay/unifiedorder
h.weixin.qq/pay/unifiedorder(备⽤域名)
需要的参数(此处使⽤服务商接⼝参数所以会有⼦商户的id 普通商户不需要)
按照签名算法计算签名
把所有要传递的参数键值对去掉值是空的,剩下的参数名ASCII码从⼩到⼤排序后,使⽤URL键值对格式(key1=value1&)拼接成StringA
把StringA后⾯多加⼀组键值&key=商户平台密钥获得StringB
把StringB按要求做"MD5"或"HMAC-SHA256"计算,并将结果字符转为⼤写
甚⾄还提供了⼀个在线校验⼯具帮助开发者检查⽣成的签名是否正确,。使⽤⽅法是选择好签名类型,校验⽅式选择XML(不是必须只是为了省事⼉),XML源串输⼊不带sign信息
发送前先⽤WXPayUtil⼯具类中的⽅法mapToXML(Map<String,String> date)⽅法将参数的map转为XML格式发送后会返回String的返回值
得到以上参数就算是⽀付jsapi接⼝调⽤成功接下来只需要完成⽀付业务流程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论