本网站已支持IPv6

个人用户认证(快e通)

1.简介

农行快e通是对合作方应用输出农行用户体系,并提供标准的OAuth2.0授权模式的接口。快e通支持移动渠道,包括手机APP、微信浏览器、手机浏览器和PC浏览器(chrome只支持扫码登录)。

2.标准快e通总体处理流程

1.登录开放银行门户网站,获取合作方资质,创建应用。

2.应用申请用户认证产品接口,配置测试/生产信息,获取应用开发相关信息。

3.应用对接快e通本地开发:

1)获取应用appid、secret、证书;

2)放置农行登录按钮,发起授权登录请求;

3)用户登录验证和授权,获取AccessToken;

4)调用开放银行网关,通过AccessToken获取用户的个人信息;

4.使用配置的测试信息,进行上线前测试,并编写测试报告文档。

5.提交上线申请,审批通过后,应用成功上线。

 

3.申请接入

1.在开放银行门户网站申请用户认证产品接口,包含用户信息接口、用户卡列表接口,请根据实际需求申请。

2.农行会给应用分配权限scope,应用只可以获取已申请的scope对应的用户资料。scope目前有openid,phone,name,certnum,custinfo,cardlist,mreginfo,reglvl,nickname,gender,address,deliveryAddr,email,profession,nationality,head等权限。申请用户信息接口(userinfo)接口时默认分配openid权限,申请用户卡列表接口(cardlist)接口默认分配cardlist权限,其他权限需要和农行业务人员沟通获取;

3.提交应用上线申请时,需要提供生产环境的快e通回调地址,如下图;

4.应用名称:应用名称将会在后续登录、授权页面反显,请务必在申请时确认应用名称。

4.快e通登录授权

1.对接方页面放置农行登录按钮,链接到农行登录地址;

2.用户输入用户名、密码和手机验证码登录;

注:登录方式是发送获取AccessToken第一步的地址,需要将获取授权码的参数填全,这样服务器会根据appid的类型决定是否生成授权页面,以及授权页面的内容。

3.返回授权页面给用户,用户勾选授权内容。

5.获取AccessToken

5.1.获取AccessToken简介

获取AccessToken为server-side模式,又称Web Server Flow;适用于如Web网站这种需要从web server访问的应用

授权验证的流程示意图如下

对于合作方网站/应用而言,需要进行两步:

1.获取Authorization Code

2.通过Authorization Code获取Access Token

5.2.获取AuthorizationCode授权码

1.接口描述:请求方法:GET。返回说明:如果用户成功登录并授权,则会跳转到指定回调地址,并在redirect_uri地址后带上AuthorizationCode和state值。示例:http://redirect_url?code=9A5F********************06AF&state=test

注意:AuthorizationCode会在3分钟内过期。

注意:每次请求发送的state请用随机唯一值。检查收到的state同请求的state是否一致,如不一致,有CSRF攻击风险。

如果用户不同意授权,则会跳回指定回调地址,并在redirect_uri地址后带上error值和state值。示例:http://redirect_url?error=User Reject Authorize&state=8q4nh4TBBw_aiez50Ix_Zw

错误码说明:接口调用有错误时,会返回错误页面。

2.请求入口:https://openbank.abchina.com/OAuthServer/OAuth/Authorize

3.请求参数:

参数 是否必输项 备注
client_id 分配给应用的appid
redirect_uri 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或者用户中心。
state Client端的状态值一般用一个随机字符串。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
scope 请求用户授权时向用户显示的可进行授权的列表。可填写的值是用户可以授权的最小单位,一个scope对应一个接口的访问权限,多个scope用逗号隔开。
response_type 授权类型,此值固定为“code”。

5.3.通过AuthorizationCode获取AccessToken

1.接口描述:请求方法:POST。返回说明:

如果成功返回,即可在返回包中获取到AccessToken

返回的例子:

access_token: AA******Pd5_u0ENeSjk5NBe7f87HcVb0SN_W9Z7GQ

token_type: bearer

expires_in: 120

refresh_token: 3NEo!IAAAA******HZO6d3o

scope: high_mobile_name_certtype_certnum

expires_in是Access_token过期的时间,单位分钟。Scope是用户同意授权的信息。

注意:一个code只能换取一次AccessToken;code需要在获取3分钟内换 取AccessToken,否则就会失效。

2.请求入口:https://openbank.abchina.com/OAuthServer/OAuth/Token

3.请求参数:

参数 是否必输项 备注
grant_type 授权类型,此值固定为“authorization_code”
client_id 分配给应用的appid
client_secret 分配给网站的appkey
code 上一步返回的authorizationcode
redirect_uri 与上一步中传入的redirect_uri保持一致

5.4.(可选)权限自动续期,获取AccessToken

1.接口描述:请求方法:POST。AccessToken的有效默认期是120分钟,过期后需要用户重新授权才能获得新的AccessToken,本步骤可以实现自动续期,避免要求用户再次授权的操作,提升用户体验。如果成功返回,即可在返回包中获取到AccessToken

返回示例:

access_token: AA******Pd5_u0ENeSjk5NBe7f87HcVb0SN_W9ZMO

token_type: bearer

expires_in: 120

refresh_token: 3NEo!IAAAA******HZO6d3o

scope: openid

expires_in是Access_token过期的时间,单位分钟。Scope是用户同意授权的信息。

2.请求入口:https://openbank.abchina.com/OAuthServer/OAuth/Token

3.请求参数:

参数 是否必输项 备注
grant_type 授权类型,此值固定为“refresh_token”
client_id 分配给应用的appid
client_secret 分配给网站的appkey
refresh_token 上一步返回的refresh_token.

6.通过AccessToken获取用户的个人信息

第三方应用通过授权服务器授权后,得到AccessToken后通过开放银行网关进行访问相关接口获取信息,在AccessToken有效的时间内,可以访问AccessToken中Scope范围内的接口。

第三方在获得新的AccessToken时,需要记录AccessToken过期时间为多少秒,在AccessToken过期后,如果需要访问资源,就要用RefreshToken去授权服务器更新AccessToken。

访问资源服务器的接口使用方法,在访问特定的接口时需要在Header头部加入Authorization,值为”Bearer accessToken” 。

获得用户的授权后,根据用户的授权scopes可以访问对应的用户信息,Scope和接口的对应表如下:访问userinfo时,只需访问一次,资源服务器会根据用户的授权返回对应的用户信息。

scope 接口 含义
openid userinfo 用户的openid信息
phone userinfo 用户的手机号数据
name userinfo 用户的姓名数据
certnum userinfo 用户的证件数据
custinfo userinfo 用户客户号和用户类型数据
mreginfo userinfo 用户的掌银注册信息
reglvl userinfo 用户的类型
nickname userinfo 用户的昵称
gender userinfo 用户的性别
address userinfo 用户的联系地址
deliveryAddr userinfo 用户的收货地址
email userinfo 用户的邮箱
profession userinfo 用户的职业
nationality userinfo 用户的国籍
head userinfo 用户的头像
userlvl userinfo 用户层级数据
cardlist cardlist 用户的银行卡列表数据

6.1.接口列表

API名称 请求入口
用户信息接口 https://openbank.abchina.com/GateWay/openabc/api/ket/userinfo/v1
用户卡列表接口 https://openbank.abchina.com/GateWay/openabc/api/ket/cardlist/v1

6.2.userinfo接口:获取用户的数据

1.请求报文:

访问示例 post: https://openbank.abchina.com/GateWay/openabc/api/ket/userinfo/v1

请求报文头:Authorization:Bearer AA******Pd5_u0ENeSjk5NBe7f87HcVb0SN_W9ZMO

请求报文体:

注:sign字段如何生成,请查阅开放银行网关相关文档。


2.响应报文:

参数 说明 所需scope
RetCode 返回编码,0000为正确返回
RetMsg 返回信息
OpenID 用户编号 openid
Nickname 昵称 nickname
Gender 性别 gender
WorkAddr 工作地址 address
FamilyAddr 家庭地址 address
DeliveryAddr 收货地址 deliveryAddr
Email 电子邮箱 email
Profession 职业 profession
Nationality 国籍 nationality
Rrzphone 手机号 phone
CifTelephone CIF手机号(现默认返回空) phone
Mbphone1 渠道1手机号 phone
Mbphone2 渠道2手机号 phone
Mbphone3 渠道3手机号 phone
CustName 姓名 name
IDType 证件类型 certnum
IDNo 证件号 certnum
CustID 用户客户号 custinfo
CustType 用户类型 custinfo
RegDate 掌银注册时间 mreginfo
RegBranch 掌银注册网点号 mreginfo
RegLvl 用户类型 regLvl
UserLvl 用户层级 userlvl
Head 用户头像 head

返回数据为Json格式,其中RetCode返回0000并且code为0000为成功,其他为失败,失败时只有RetCode和RetMsg返回信息。

示例:


biz_encrypt的解密结构示例:


6.3.carlist接口:获取用户卡列表信息

1.请求报文:

访问示例 post: https://openbank.abchina.com/GateWay/openabc/api/ket/cardlist/v1

请求报文头:Authorization:Bearer AA******Pd5_u0ENeSjk5NBe7f87HcVb0SN_W9ZMO

请求报文体:

注:sign字段如何生成,请查阅开放银行网关相关文档。


2.响应报文:

参数 说明 所需scope
RetCode 返回编码,0000为正确返回
RetMsg 返回信息
OpenID 用户编号 cardlist
CustType 用户类型
2是中实名,3是强实名
cardlist
Cards 卡列表 cardlist

返回数据为Json格式,其中RetCode返回 0000并且code为0000为成功,其他为失败,失败时只有RetCode和RetMsg返回信息。

示例:


biz_encrypt的解密结构示例:


7.掌银渠道对接快e通

简介:与通用版快e通对接相比,对接方通过调起农行掌上银行APP登录实现用户授权。用户无须再进入登陆页面,输入手机号、密码等信息。

7.1 流程说明

1)合作方页面调起掌银OAuthLogin登录授权交易,根据掌银交易报文规范传入appid、scope、回调地址等参数信息,引导用户进行掌银App登录;

2)掌银将合作方应用信息转发至快e通进行合作方身份校验,如果用户首次登录,则会弹出授权页面提示用户授权给应用的信息,用户点击确认则继续进行授权流程,若用户拒绝,则授权流程中断;

3)快e通对合作方信息校验通过后则会返回临时令牌code,临时令牌有效期为3分钟;

4)掌银将临时令牌追加至合作方回调地址后进行重定向回合作方应用页面;

5)合作方应用接收回调地址中的code参数,并通过后台调用快e通认证授权服务器Token访问令牌交易,换取访问令牌access_token,访问令牌有效期为2小时;

6)合作方接收访问令牌后,后台通过访问令牌调用快e通资源服务器,获取用户信息。

7.2 对接方式:

请求地址: https://www.abchina.com/luascript/oauthLogin/

请求示例:window.top.location.href = urlStr,第三方在页面进行重定向到掌银。

7.3 返回说明:

掌银会通过 Get 方法调用回调地址,并返回 code 及 state,state用于合作方进行一致性验证。临时令牌 code 会在 3 分钟内过期,接口调用有错误时,会返回错误页面。

7.4 返回调用示例:

7.5 获取code之后,后续步骤与标准方式接入方式一致,请参考5.3、5.4、6。

8. 快e通白名单测试

为便于合作方对接联调,在合作方正式上线前,快e通支持白名单内用户进入测试地址进行测试联调。

1)在开放银行门户申请用户卡列表接口/用户信息接口时,配置测试配置信息。

入口地址:合作方入口页面。

回调地址:合作方回调地址(回调地址是测试的回调地址,生产上线时可以更换)。

测试手机号: 测试人员手机号(可以登录农行掌银)。

2)H5对接快e通:提交审核之后,合作方在上线之前,通过配置的入口地址访问,使用白名单内的用户进行登录授权测试。

3)掌银渠道对接快e通:将链接https://openbank.abchina.com/OAuthServer/Pages/WhiteTest/index.html?client_id=分配的appid,生成二维码(建议搜索二维码工具生成),通过配置的白名单手机号登录掌银后扫描,扫码并验证成功后,则可以在掌银端打开入口地址。

4)应用在未上线前,配置测试信息的合作方,可以使用白名单的手机号获取用户信息/卡列表接口,限制100次/天。

9. 常见问题

1)未使用白名单用户测试、白名单用户未绑卡、扫码进入时未登录。

2)请求授权码时,redirect_uri和准入时提供的地址不匹配。

3)redirect_uri在请求授权码和请求访问令牌传进来的要严格一致。

4)redirect_uri中不允许加入#这类的特殊字符。

5)获取AccessToken时,未使用form表单提交。

6)SCOPE范围超出权限范围。

中国农业银行版权所有 |  京ICP备05049539