服务商对接 商户自用对接 微信C端授权文档 C/S架构授权文档 |
1、登录服务商后台:http://huabangruanjian.com
2、用注册的账号登陆HuaBang云,在系统设置里面找到资质管理,填写相关资质信息进行提交;资质审核需要1个工作日,资质审核通过后,即可进入应用创建流程获取client_id;
三、创建应用流程1、登陆HuaBang云,进入服务商管理后台2、选择对应的类目"创建应用";按照对应的应用类目进行缴纳:
支付完成后即可进入应用创建、编辑页面:
应用创建完成,显示在应用列表,显示“待审核”状态,应用审核需一个工作日;
2.2 如果没有缴纳保证金,进入应用创建页面,会有未缴纳保证金提示:按照页面提示,点击进入“请缴纳您的诚信保证金”,进入缴纳保证金页面,流程同上面的2.1一样。
3、应用审核通过,进入应用测试开发阶段。四、应用开发流程华邦科技服务商在后台创建应用并审核通过后,需要对应用进行授权开发,授权开发成功后再可以发布服务上线到服务市场展示,应用开发具体流程如下:
OAuth2.0授权流程基本定义:如果您的应用和HuaBang云对接时需要获取用户隐私数据(如商品、订单等),为保证用户数据的安全与隐私,您的应用需要取得用户的授权,即获取访问用户数据的授权令牌 Access Token。这种情况下,您的应用需要引导用户完成使用华邦科技帐号“登录授权”的流程。华邦科技OAuth2.0流程采用国际通用的OAuth2.0标准协议作为用户身份验证与授权协议,支持网站、手机客户端、桌面客户端。
1、client_id 和 client_secret 是开发者的应用发起华邦科技和Oauth 授权的凭证;
一个应用必须申请一份对应的 client_id 和 client_secret,才能发起 Oauth 授权请求;一个服务商可以有多个应用;
2、redirect_uri指的是应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uri;
3、access_token即服务商授权后颁发的调用华邦科技API 的凭证;
4、RefreshToken即刷新access_token的凭证,当access_token过期时,服务商可以用RefreshToken刷新得到新的access_token。
对接具体操作流程及注意事项如下:1 登录华邦服务商中心,选择你所需要授权的应用。点击“配置”设置应用跳转地址。
注意:跳转地址填写的是接入方自己的一个有效的url,用于接收开放平台返回的code和state参数。请确保“回调地址(redirect_uri)”与“创建应用”时填写的地址保持一致。
2 点击“API权限”查看CLIENT_ID和CLIENT_SECRET,建议复制在TXT文档中,便于后续拼接请求地址时使用。
STEP 1填写请求地址,获取code注意:标红部分为需要你修改的参数(填写时去掉大括号),若无state可不用填写。
@client_id:在创建完应用即可获得。
@redirect_uri:回调地址,是在你选择好需要授权的公众号后,跳转的地址,请确保你能在该地址进行数据获取操作。实际进行授权操作时,测试的数据 client__id、redirect_uri均需要根据自己创建的应用实际数据给予替换,不能拿示例中给出的值直接进行测试,以免影响实际测试效果。
请求参数:参数名称是否必须参数可能值参数说明enter是wm授权入口类型(enter=wm代表从第三方发起授权;enter=fuwu代表从服务市场内部授权)client_id是创建应用时获得的idresponse_type是code授权类型,值为code。state可选自定义信息redirect_uri是填写在HuaBang云注册时的回调地址redirect_uri指的是第三方应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uriscope是默认default,认证权限范围说明:可发布服务市场的服务,在服务上线后,如购买服务的用户,通过"我的服务--立即使用”访问(下图),系统会自动跳到授权页面(因此这种方式访问应用的,不需要拼接url),只需注意获取code即可
另返回code时,还会返回通过state传递订购服务相关的信息,类似如下:
state=sign:C54E2894C1401455A648547EA4DBC5E4;endTime:xxx;versionName:xxx
sign:state完整签名,以client_secret为签名密钥,MD5加密
endTime: 服务结束时间
versionName: 版本名称
sign = md5(client_secret+endTime+versionName)
请求方式:POST
注意:标红部分为需要你修改的参数(填写时去掉大括号)。
@code 在上一步骤获取
@client_id 即成功创建应用时生成的ClientID
@client_secret 即成功创建应用时生成的ClientSecret
@redirect_uri 回调地址,是在你选择好需要授权的公众号后跳转的地址,请确保你能在该地址进行数据获取操作。实际进行授权操作时,测试的数据 client_id、client_secret、redirect_uri均需要根据自己创建的应用实际数据给予替换,不能拿示例中给出的值直接进行测试,以免影响实际测试效果。
请求参数:名称是否必选参数值参数释义client_id是创建应用时获得。client_secret是创建应用时获得。grant_type是authorization_code授权类型,值为authorization_codecode是上一步获取code得到redirect_uri是可填写应用注册时回调地址域名。redirect_uri指的是应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uristate可选自定义信息响应参数:返回参数类型返回value说明access_tokenstringAccesstokentoken_typestringBearerAccesstoken的类型目前只支持bearerexpires_innumber7200(表示7200秒后过期)Accesstoken过期时间refresh_tokenstringRefreshtoken,可用来刷新access_tokenrefresh_token_expires_innumber默认7天Refreshtoken有效期scopeString默认default授权范围business_idString华邦商户idpublic_account_idString华邦商户的公众号idSTEP 4通过授权获取的refresh_token,可用来刷新access token 的有效时长。请求方式:POST
{client_secret}&refresh_token={refresh_token}
请求参数:名称是否必选参数值参数释义client_id是创建应用时获得。client_secret是创建应用时获得。grant_type是refresh_token授权类型,值为refresh_tokenrefresh_token是上一步中返回的refresh_tokenstate可选自定义state响应参数:返回key类型返回value说明access_tokenstringAccesstokentoken_typestringBearerAccesstoken的类型目前只支持bearerexpires_innumber7200Accesstoken过期时间refresh_tokenstringRefreshtoken,可用来刷新access_tokenrefresh_token_expires_innumber默认7天Refreshtoken有效期scopeString默认default授权范围business_idString华邦商户idpublic_account_idString华邦商户的公众号id授权时长说明:1、服务市场授权入口,默认的refresh-token时长为商户所购买服务的有效时长。
2、自定义授权入口,refresh_token的默认有效时长为7天,在refresh_token未失效时间内,可使用refresh_token刷新access_token,则会对refresh_token的有效期增加2个小时,但refresh_token有效期最终上限7天保持不变。也就是说只要持续刷新,这个refresh-token一直是有效的。
STEP 5 获取商户基本信息接口PS:目前该api只返回商户的pid,name,avatarUrl三个字段的信息。
请求方式GET
online:http://dopen.huabon.net/api/1_0/open/usercenter/gethuabonUserInfo?accesstoken={accesstoken}
返回数据结构:{
"data": {"pid": "55628727","name": "华邦科技开放服务平台","avatarUrl": "http://wx.qlogo.cn/mmopen/scAWiciaAIqhVtHQmXZmWBLbA08DEoHib20x5vHF818tG5zEf8BU6dGELnjibibdYeic1YlqlCdFP9dHVF8ibgTRdwjohEZWfJKB6zU/0 },"code": {"errcode": 0,"errmsg": "success"}}
6、服务审核需要3个工作日,注意服务待审核状态详情不可进行编辑,审核前和审核后都可对服务详情进行编辑修改,修改详情信息需要再次审核;
7、审核通过后,即可上线,在服务市场前端展示;8、服务上线后在服务市场前端展示预览,如图:备注说明:1、已上架服务购买授权:若商户所需要的服务已在华邦科技服务市场上架,购买后可通过“我的服务”——“立即使用”访问(下图),系统会自动跳到授权页面(因此这种方式访问应用的,不需要拼接url),只需注意获取code即可。
另返回code时,还会返回通过state传递订购服务相关的信息,类似如下:
state=sign:C54E2894C1401455A648547EA4DBC5E4;endTime:xxx;versionName:xxx
sign:state完整签名,以client_secret为签名密钥,MD5加密
endTime: 服务结束时间
versionName: 版本名称
sign = md5(client_secret+endTime+versionName)
2、获取商户基本信息接口:目前该api只返回商户的pid,name,avatarUrl三个字段的信息。请求方式:GET
请求地址http://dopen.huabon.net/api/1_0/open/usercenter/gethuabonUserInfo?accesstoken={accesstoken}
返回数据结构:
{
"data": {
"pid": "55628727",
"name": "华邦开放服务平台",
"avatarUrl": "http://wx.qlogo.cn/mmopen/scAWiciaAIqhVtHQmXZmWBLbA08DEoHib20x5vHF818tG5zEf8BU6dGELnjibibdYeic1YlqlCdFP9dHVF8ibgTRdwjohEZWfJKB6zU/0"
},
"code": {
"errcode": 0,
"errmsg": "success"
}
返回参数:
返回key类型返回value说明pidstring商户公众号/店铺idnamestring商户公众号/店铺名称avatarUrlstring商户公众号/店铺头像3、常见问题:Q:华邦的access token和微信的access_token是否一样?A:不一样,华邦开放平台的access token是基于华邦科技产品业务接口而使用的,是不能再用于微信接口调用开发的。
Q:华邦接口调用次数是否有限制?
A:目前华邦每个接口每日调用次数上限为100万次。默认情况下,每个接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码:
{"code": {"errcode": 8000103,"errmsg": "exceed the api call limit"}}
1、通过code拿到access token和refresh_token。
2、access token有效期2h,refresh token最高上限7天+2h。3、用refresh token刷新获取新的access token,每次刷新refresh token有效期增加2h(refresh token有效时间从刷新这一刻计算,不是从第一次获取计算)。*如果走服务市场购买授权的话,refresh token时长是购买周期。4、建议保证2h内至少自动刷新一次。(备注:需使用主账号登录授权)
A:常见的错误信息:
invalid_client:参数client_id错误,检查后重新填写。
Bad client Credentials:可以检查下参数中是否存在空格,client_id或者client_secret错误,检查后重新填写。
redirect_uri mismatch:跳转地址不匹配,检查后重新填写。获取token这个过程,redirect_uri跳转地址是必须的,同时需要同应用填写的跳转地址完全匹配。
华邦科技商户在对接第三方服务或应用时,若该第三方服务商暂未与华邦科技对接,请先将此文档及您所需要对接的华邦科技API接口文档发给相关服务商,联系他们进行对接开发;如有对接过程中有疑问或接口需求,请反馈至华邦科技官方邮箱:hb@kaixinzhuangyuan.cn
一、基本定义
OAuth2.0授权流程基本定义
如果您的应用和华邦科技开放平台对接时需要获取用户隐私数据(如商品、订单等),为保证用户数据的安全与隐私,您的应用需要取得用户的授权,即获取访问用户数据的授权令牌 Access Token。这种情况下,您的应用需要引导用户完成使用华邦科技帐号“登录授权”的流程。
华邦科技OAuth2.0流程采用国际通用的OAuth2.0标准协议作为用户身份验证与授权协议,支持网站、手机客户端、桌面客户端。
对接前,请先登录华邦科技后台,进入新版开发者中心,创建应用,获取client_id、client_secret、配置redirect_uri。
1、当商户公众号是认证服务号时,用户信息直接授权给对应的公众号;当商户公众号不是认证服务号时,用户信息授权给华邦“旺铺”公众号,并由“旺铺”公众号与商户公众号形成映射关系,将相应信息传递给商户公众号。2、仅认证服务号可获取到微信用户的OpenID、头像、性别等,其他账号类型(包括认证/未认证订阅号、未认证服务号)可正常获取到除OpenID外的其他信息。
1. 1 创建授权请求,获取code
请求地址:https://dopen.huabon.net/fuwu/c/oauth2/authorize?enter=wx&view=wx&aid= {aid} &response_type=code&scope=default&client_id={clinet_id}&redirect_uri={http://xxx}&state={state}
说明:只能在微信客户端发起授权请求。
参数说明:
1.2 引导用户进入到华邦科技开放平台C端Oauth2授权页面,点击确认登陆,此时会将授权码code 返回到了回调地址(上一步骤中的redirect_uri),应用可以获取并使用该code去换取access_token。成功后跳转到redirect_uri?code=xxx&state=state
说明:当商户公众号是认证服务号时,用户信息直接授权给对应的公众号;当商户公众号不是认证服务号时,用户信息授权给华邦科技“旺铺”公众号,并由“旺铺”公众号与商户公众号形成映射关系,将相应信息传递给商户公众号。
C端授权页面如下:
1.3 换取access_token
成功获取授权码code后,可以以此进行换取access_token,
返回结果:
1.4 刷新accees_token
通过授权获取的refresh_token,可用来刷新access token的有效时长。
请求方式:POST
请求地址:http://dopen.huabon.net/fuwu/c/oauth2/token?grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token}
返回结果:
1.5 获取微信用户API:
请求方式:POST
请求地址:https://dopen.huabon.net/c/api/1_0/oauthcenter/session/getuserinfo?accesstoken={上一步授权成功后的access_token}
返回结果:
{
"code": {
"errcode": 0,
"errmsg": "success"
},
"exp": null,
"data": {
"AId": 670,
"huabonOpenId": "oAshwimwkoh57iYJtkgh-G7k_BH",
"OpenId": "oka-Fb7hW2_bdWSMBHNTk77ZIhsD",
"NickName": "月牙",
"Sex": "2",
"Province": "广州",
"City": "白云区",
"Country": "中国",
"HeadimgUrl":"http://wx.qlogo.cn/mmopen/91WsEk2G56iatjDLib35N9DuNzLA4hrN2jDJXGhbnPAic7jPjgxO6jMvjcS0nftpOibOycNTu0q2FQYw/0"
}
}
data数据说明:
由于C/S架构的应用无法发起基于浏览器的授权,因此需要进入华邦服务商中心/商户开发者中心的授权按钮完成发起授权操作,点击开发者中心的授权按钮,将访问如下地址。
参数说明:
参数名称是否必须 参数可能值参数说明enter是wm授权入口类型client_id是创建应用时获得的idresponse_type是code授权类型 ,值为codestate可选自定义信息redirect_uri是填写在开放平台注册时的回调地址 redirect_uri指的是第三方应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uri scope是默认default,认证权限范围。1.1 获取code
上一步完成后,会引导用户进入到华邦开放平台Oauth2授权页面,点击授权此时会将授权码code 返回到了回调地址(上一步骤中的redirect_uri),应用可以获取并使用该code去换取access_token。成功后跳转到redirect_uri?code=xxx&state=state
1.2 换取access_token
成功获取授权码code后,可以以此进行换取access_token,online环境请求地址:
POST https://dopen.huabon.net/fuwu/b/oauth2/token?code={code}&grant_type=authorization_code&client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}
返回结果:
返回key类型返回value说明access_tokenstringAccess tokentoken_typestringBearerAccess token的类型目前只支持bearerexpires_innumber7200(表示7200秒后过期)Access token过期时间refresh_tokenstringRefresh token,可用来刷新access_token refresh_token_expires_innumber 默认7天Refresh token有效期scopeString默认default授权范围business_idString华邦商户idpublic_account_idString华邦商户的公众号id1.3 刷新accees_token
通过授权获取的refresh_token,可用来刷新access token 的有效时长。online
grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token}
名称是否必选参数值参数释义client_id是创建应用时获得。client_secret是创建应用时获得。grant_type是refresh_token授权类型 ,值为refresh_token refresh_token是上一步中返回的refresh_tokenstate可选自定义state返回数据:
返回key类型返回value说明access_tokenstringAccess tokentoken_typestringBearerAccess token的类型目前只支持bearerexpires_innumber 7200(表示7200秒后过期)Access token过期时间refresh_tokenstringRefresh token,可用来刷新access_tokenrefresh_token_expires_innumber默认7天Refresh token有效期scopeString默认default授权范围business_idString华邦商户idpublic_account_idString华邦商户的公众号id1.4授权完成
完成以上流程后,C/S架构的应用需要自身根据一定的查询方式获取到上部获取到的access_token。获取商户基本信息接口
PS:目前该api只返回商户的pid,name,avatarUrl三个字段的信息。
返回数据结构:
{
"data": {
"name": "华邦开放服务平台",
"
"code": {
"errcode": 0,
"errmsg": "success"
}
}
|