记录农行快e通授权获取openId对接踩过的坑

记录农行快e通授权获取openId对接踩过的坑,第1张

1 准备工作 :银行人员先建立测试产品 获取appid appsercret 证书

2 会发送到你邮箱里一份demo

3 进入正题:将demo里的h5后台代码copy到自己项目里,或者直接执行当前项目

因为我的项目比较老,不是springboot,所以配置文件引入的时候要改一下

这个略过

4 修改配置文件里的参数,具体参数介绍

# 1 快e 通 h5模式 此模式下入口链接在哪里都可以挂,点击登录快e通 2 掌银模式 只能在掌银里使用

ketconfiglogin_type=1

# 回调地址(注:需修改为自己的地址)

ketconfigredirect_url=域名/abc/redirect

# 应用id(注:需修改为自己的appid)

ketconfigclient_id=

# 用户授权登录获取信息的范围

ketconfigscope=openid

# 应用密码

ketconfigclient_secret=

# h5渠道获取令牌code

# h5 快e通

ketconfigauthorizeUrl1=>

意思是:微信支付时没有获取到付款用户唯一标识openid。

这个参数是公众号支付时的必传参数。

openid是公众号的普通用户的一个唯一的标识,只针对当前的公众号有效,只要获得OpenID,就可以相继获得用户的一些信息,如:所在城市、国家、姓别等,应该是没有绑定身份z和手机号。

OpenID协议提供了一个基本的认证机制:

还有基于OpenID的其它可用协议:AttributeExchange:OpenID属性交换是一种用于在端点之间交换标识信息OpenID服务扩展。其提供了对标识信息的接收和存储。

Simple Registration:这是OpenID认证协议的扩展,它允许非常轻量级的配置交换。主要用于在终端用户使用web服务注册新帐号时传送八种常用的请求信息。

同一个微信公众帐号只能选择成为订阅号或者服务号中一种。服务号是需要公司营业执照上的信息的,订阅号不需要,个人都可以注册。老师讲的是公司注册两个平台帐号。一般前期加粉丝用订阅号,因为前期粉丝不稳定,而订阅号可以每天给粉丝群发图文消息,有利于互动。服务号就是做后期服务用,当粉丝稳定下来了可以推荐关注服务号。这两个号是不能共粉丝的,只能给粉丝推荐另一个号让粉丝自己去关注。由于微信平台只为服务号提供九大接口功能,所以服务号做后期会员服务能有更好的客户体验。\x0d\九大接口分别是:\x0d\1语音识别:通过语音识别接口,用户发送的语音,将会同时给出语音识别出的文本内容。\x0d\2客服接口:通过客服接口,公众号可以在用户发送过消息的24小时内,向用户回复消息。\x0d\3OAuth20网页授权:通过网页授权接口,公众号可以请求用户授权。\x0d\4生成带参数二维码:通过该接口,公众号可以获得一系列携带不同参数的二维码,在用户扫描关注公众号后,公众号可以根据参数分析各二维码的效果。\x0d\5获取用户地理位置:通过该接口,公众号能够获得用户进入公众号会话时的地理位置(需要用户同意)。\x0d\6获取用户基本信息:通过该接口,公众号可以根据加密后的用户OpenID,获取用户的基础信息,包括头像、昵称、性别、地区。\x0d\7获取关注者列表:通过该接口,公众号可以获取所有关注者的OpenID。\x0d\8用户分组接口:通过分组接口,公众号可以在后台为用户移动分组,或创建、修改分组。\x0d\9上传下载多媒体文件:通过该接口,公众号可以在需要时在微信服务器上传下载多媒体文件。

技术栈SpringbootjavaXML(微信在>

服务端需要的核心 *** 作,总共分为以下几步:

统一下单前端调起微信支付必要参数(需加密)订单结果主动通知(回调接口)查询订单结果结束订单支付接口(关闭订单,支付订单关闭)代码

微信总共支持多种语言的sdk,在官网可以下载例子,java程序也可以引入微信支付的sdk包,但是github上的sdk已经很久没有更新了,最好的选择,也是我的选择,在官网上下载sdk项目,将其中所有java类copy到自己的项目中

官网sdk下载目录链接:商户平台首页

微信sdk下载根据微信sdk生成配置类WXPayConfig

创建IWxPayConfigclass,继承sdkWXPayConfigclass,实现sdk中部分抽象方法,读取本地证书,加载到配置类中packagecorecomchidoriwxpay;

发起统一下单AND前端调起微信支付必要参数回调结果处理

核心是支付订单回调时,需校验加密签名是否匹配,防止出现模拟成功通知

注意点

统一下单的签名和后续前端拉取微信支付的签名需要统一,也就是都采用MD5加密,如果2者不同,会导致前端拉取微信支付fail,这是一个巨大的坑,因为这个原因调试了好久,微信在文档里没有明确标出统一下单的签名校验方式需要和前端拉取微信支付的签名校验保持一致微信sdk里的源码需要针对这个问题调整一下,调整如下:WXPay类需要修改下加密判断,在WXPay构造方法中,调整如下

结束语

做完以后,微信支付的后端逻辑还是很清晰的,但是在开发过程中很煎熬,不清楚每个专业术语在微信哪里配置,加密方式乱的很


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13344171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存