商家从接入到最后上线,完整流程如下图所示
前置条件:
成为开发者之前需要有一个可以登录淘宝的账号,并且这个账号绑定的支付宝账号是企业认证的账号。
备注:个人账户不支持(会提示“企业资质认证 你的支付宝账号不是企业资质认证”)
若没有账户需要注册:
1、注册淘宝账号及绑定的企业支付宝账号;
2、使用企业资料对该支付宝账号进行实名认证;
注册淘宝账号地址:https://reg.taobao.com/member/reg/fast/union_reg?_regfrom=TB
注册企业认证支付宝地址:https://memberprod.alipay.com/account/reg/enterpriseIndex.htm
选择企业账户 需要资料如下:
营业执照: 影印件必须为彩色原件的扫描件或数码照
对公银行账户: 可以是基本户或一般户,但必须里面有钱,因为注册绑定后会发起一次网银打款验证(从企业对公账户中转给支付宝备付金账户)(企业网银1~3天到账)
法人信息以及公章:法人身份证影印件正反面
电子邮箱:最好是经常使用的企业邮件,需要接受认证激活等信息。
注册人手机号码:做短信验证
需要申请是商家在ReX平台上的账户信息,用户管理ReX平台上商家资料和数据信息等相关(默认为正式环境账户),申请的接口人为当时做业务对接的时候负责setup的同学。
授权是商家对三方应用的获取商家数据的一个许可,如果没有这个许可,那么三方应用是不能拿到商家的数据的。
设置应用的回调地址,这个回调地址用于接收ReX开放平台生成的商家授权许可token,如下图所示:
【说明】回调地址填写为自己的系统中的外网可以访问的一个地址。开放平台生成code后会回调这个地址,然后这个地址对应的处理代码从参数中获取code参数。
获取授权code(注意此code并不是最终的token)。访问以下URL登录ReX系统获取授权code:
- 正式环境: http://oauth.hemaos.com/authorize?response_type=code&sp=hema&op=topApp&client_id=商家应用appkey
参数说明:
- response_type:请求授权类型,固定为”code”。
- sp:业务线,固定为”hema”。
- op:固定为 ”topApp”。
- client_id:商家申请接入时分配给商家的appkey。登入界面如图:(首次登录,需要“忘记密码--激活账号”)
登录ReX平台账号成功后,页面会跳转到事先配置好的回调地址(在淘宝开放平台,应用设置->基本信息页面里有配置),跳转的回调地址中会携带授权code。返回值示例,如下图所示
【说明】 授权code并不是最终的token,只是为了安全起见,采用2次置换的方式。在回调地址的URL中,明文携带token很不安全。因此采用先拿到授权code,再使用授权code去置换token的方式,提高安全性。
获取授权token。三方应用拿到code,携带自己应用的appkey,secret,code,去置换对应商家的token。拿到token,使用client.execute(request, session); 可以进行正常使用。置换代码如下:
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secretkey); TopAuthTokenCreateRequest req = new TopAuthTokenCreateRequest(); //此处为上面通过登录ReX工作台拿到的授权code req.setCode("0_ebKlCPqc6OD8RBlB0DzfnpUg2"); TopAuthTokenCreateResponse rsp = client.execute(req); System.out.println(rsp.getTokenResult());//返回json
返回示例:
{ "w2_valid": 1503376101386, "sp": "hema", "r1_valid": 1505966301386, "r2_valid": 1503633501386, "w1_valid": 1505966301386, "locale": "zh_CN", "user_id": "3399068818", "expire_time": 1505966301386, "refresh_token": "50003800625qvqrLeygoCs3sPh82kXGkUEtxg10446b53BeeU9Ow2EiHLq0O2U6kmMv", "user_nick": "%E9%AB%98%E4%BA%8C%E8%8D%A3", "refresh_token_valid_time": 1503374301386, "access_token": "50002801b25sv7qdXjAw6pzzCnDNlZHtXoe5C1cc68ee3TreyuZuuOyZ6yg1mHqq68x" }
返回参数说明(用到的数据)
- access_token: 用于调用TOP接口的token
- expire_time: 表示授权在这个时间之后就无效了,需要重新授权,为了保证业务正常运行,需要在这个过期时间之前,让商家登录重新授权
【说明】置换授权token的url参数是TOP的网关,置换token的流程必须要用https的协议,http的无法使用。网关如下:建议使用地址1
授权需要注意的点
接下来就可以开始写代码调用ReX平台开放的api接口,具体如何调用,以及如何测试,在接口调用和测试指南一节会详细讲述
整个开发测试的整个流程分为三个阶段,
如果测试完成,验证没有问题,代码可以发布上线,正式对外服务。