前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >唯品会开放平台(vop.vip.com)SDK使用说明书

唯品会开放平台(vop.vip.com)SDK使用说明书

作者头像
凯哥Java
发布2019-06-28 17:39:43
4.7K0
发布2019-06-28 17:39:43
举报
文章被收录于专栏:凯哥Java

唯品会开放平台(vop.vip.com)SDK使用说明书

1)内容说明

┬ lib/osp-sdk.jar 底层通讯协议jar包

├ lib/vop-sdk.jar 服务帮助类jar包

└ lib/vop-sdk-sources.jar 服务帮助类sources包

2)使用说明

开放平台SDK由两部分组成,分别是“底层通讯协议(osp-sdk.jar)”和“服务帮助类(vop-sdk.jar)”。

3)关键字段说明

appkey:创建应用时生成,为接口调用凭证之一

appsecret:创建应用时生成,为接口调用凭证之一

accessToken:通过Oauth认证授权时生成,参考:http://vop.vip.com/doccenter/viewdoc/33

sign:调用签名,建议在异常捕获中记录该值,可以提高开放平台定位异常的效率,具体生成规则参考:http://vop.vip.com/doccenter/viewdoc/8#A4

4)调用示例

将sdk引入到项目中后,可根据以下demo测试应用访问权限和连通性,sdk提供两种系统级参数的设置方式:

 - 方式一为每个client设置不同的InvocationContext,即不同的client之间可以配置不同的appkey,appsecret,超时时间等,每个client之间的ClientInvocationContext独立存在,不会互相影响;

 - 方式二为线程内所有client设置一个通过ThreadLocal共享的InvocationContext,即线程内的所有client都是用同一个appkey,appsecret,超时时间等,当InvocationContext的值更改时,所有client都会受影响;

方式一,使用ClientInvocationContext设置客户端系统级参数(推荐):

代码语言:javascript
复制
public static void main(String[] args) {
	//1、获取服务客户端
	AddressServiceClient client = new AddressServiceClient();
	
	try {
		//2、设置系统级调用参数
		ClientInvocationContext instance = new ClientInvocationContext();
		instance.setAppKey("appKey");//替换为你的appKey
		instance.setAppSecret("appSecret");//替换为你的appSecret
		//instance.setAccessToken("accessToken");//替换为你的accessToken,通过Oauth认证时必填
		instance.setAppURL("http://sandbox.vipapis.com/");//沙箱环境
		//instance.setAppURL("https://gw.vipapis.com/");//正式环境
		//instance.setReadTimeOut(30000);//读写超时时间,可选,默认30秒
		//instance.setConnectTimeOut(5000);//连接超时时间,可选,默认5秒
		
		//3、设置client的调用上下文
		client.setClientInvocationContext(instance);
		
		//4、调用API及返回
		List<ProvinceWarehouse> provinceWarehouse = client.getProvinceWarehouse(vipapis.address.Is_Show_GAT.SHOW_ALL);
	} catch (OspException e) {
		//4、捕获异常
		System.out.println(client.getClientInvocationContext().getLastInvocation().getSign());//获取最近一次调用的sign值
	}
}

方式二,使用ThreadLocal中的InvocationContext设置系统级参数:

代码语言:javascript
复制
public static void main(String[] args) {
	InvocationContext instance = null;
	try {
		//1、获取服务客户端
		AddressServiceClient client = new AddressServiceClient();
		
		//2、设置系统级调用参数,只需在程序开始调用前设置一次即可
		instance = InvocationContext.Factory.getInstance();
		instance.setAppKey("appKey");//替换为你的appKey
		instance.setAppSecret("appSecret");//替换为你的appSecret
		//instance.setAccessToken("accessToken");//替换为你的accessToken,通过Oauth认证时必填
		instance.setAppURL("http://sandbox.vipapis.com/");//沙箱环境
		//instance.setAppURL("https://gw.vipapis.com/");//正式环境
		//instance.setReadTimeOut(30000);//读写超时时间,可选,默认30秒
		//instance.setConnectTimeOut(5000);//连接超时时间,可选,默认5秒
		
		//3、调用API及返回
		List<ProvinceWarehouse> provinceWarehouse = client.getProvinceWarehouse(vipapis.address.Is_Show_GAT.SHOW_ALL);
	} catch (OspException e) {
		//4、捕获异常
		System.out.println(instance.getLastInvocation().getSign());//获取最近一次调用的sign值
	}
}

注:当客户端设置了ClientInvocationContext时,将不会从ThreadLocal中获取InvocationContext。仅当ClientInvocationContext未设置或设为null时,客户端会调用InvocationContext.Factory.getInstance()获取ThreadLocal中的InvocationContext。

5)FAQ

a.调用失败?

i.对于有明确返回错误信息的失败调用,请根据错误信息提示操作;

ii.对于原因不明的失败,请通过开放平台的支持中心搜索解决方案或提交问题进行报障:https://vop.vip.com/support/index

b.网络环境不稳定或超时?

i.如果是正式环境,请确认调用参数AppUrl是否为https://gw.vipapis.com

ii.若业务参数包含分页数据,请按照API在线文档(https://vop.vip.com/apicenter/index)的建议大小设置每页数据大小,一般建议每页数据在100以内

iii.其他疑难问题,请通过开放平台的支持中心提交问题进行报障:https://vop.vip.com/support/index

c.sdk如何升级?

可到开放平台下载sdk最新版本,:https://vop.vip.com/doccenter/viewdoc/20

建议下载新的sdk以后,替换所有内容(osp-sdk.jar和vop-sdk.jar),以保证sdk正常运行。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档