获取openId

大约 3 分钟

根据授权码获取openId信息

服务IDzjrcuoip.oauth.get.openId.new
VERSION1.0.0

服务详细描述:

根据丰收互联授权码获取用户openId和访问令牌

示例代码

GetOpenIdByAuth.java

/**
 *
 *功能: 添加类功能说明. 
 * 
 *
 * @author jialiantao 
 * @version v1.0.0 
 * @Date: 2020年9月29日  
 * @since JDK 1.8  
 *
 * @Modification-History
 * Date         Author     Version    Description 
 * ---------------------------------------------- 
 * 2020年9月29日     jialiantao   v1.0.0     修改原因               
 *
*/
		INetTools netTools = NetToolsHttpFactory.getHttpInstance();
		// 2.生成公共请求报文对象
		OipReqBean oipReqBean = new OipReqBean();
		// 设置应用id
		oipReqBean.setAppId("应用id");
		// 设置开发者id
		oipReqBean.setDlpId("开发者id");
		// 设置产品id
		oipReqBean.setProdId("产品id");
		// 设置api方法名
		oipReqBean.setMethod("zjrcuoip.oauth.get.openId.new");
		// 设置api版本
		oipReqBean.setVersion("1.0.0");
		// 设置时间戳

		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		oipReqBean.setTimestamp(sf.format(new Date()));
		// 3.生成请求配置对象,配置请求地址/url等信息
		NetReqConfBean netReqConfBean = new NetReqConfBean();
		// 应用私钥
		netReqConfBean.setAppPrivateKey("应用私钥");
		// 请求地址
		netReqConfBean.setNetUrl("请求地址");
		// 开发者公钥
		netReqConfBean.setPublicKey("开发者公钥");
		// 4.生成请求业务报文对象
		GetOpenIdByCodeBean qcar = new GetOpenIdByCodeBean();
		// qcar.setAccessId("");
		// 用client_secret通过HMAC-SHA1算法计算code的摘要,作为此字段的值    code 要换成真实的授权码
		
		String clientSign = HMACSignUtil.genHMAC("b5c54c3f11c64fb284bdfffb2a36be4e", "d73d504dabda453997657c432cf89f04");
		qcar.setClientSign(clientSign);
		qcar.setCode("b5c54c3f11c64fb284bdfffb2a36be4e");
		
		//授权范围
		List<Map<String, String>> scopeList = new ArrayList<Map<String, String>>();
		Map<String, String> scopeMap = new HashMap<String, String>();
		scopeMap.put("scopeName", "get_core_user_info");//根据授权等级传对应的值
		scopeList.add(scopeMap);
		qcar.setScopeList(scopeList);

		// 6.生成业务报文json对象
		oipReqBean.setBizContent(JSON.toJSONString(qcar));
		// 通讯获取报文对象
		OipRspBean oipRspBean = netTools.execute(oipReqBean, netReqConfBean);

		if (oipRspBean.isSuccess()) {
			String bizJson = oipRspBean.getBizContent();
			if (StringUtils.isNotBlank(bizJson)) {
				Map bizData = JSON.parseObject(bizJson, Map.class);
				System.out.println(bizData);
			}
		}else {
			
		}
        
			

公共报文

[点击查看公共报文]

业务输入项

序号key数据项名称类型长度是否必输数据项说明
1code授权码String40
2clientSign客户端摘要String40用client_secret通过HMAC-SHA1算法计算code的摘要,作为此字段的值
3authType授权类型String11:用户授权 2:app授权
4oauthFlagoauth2.0授权接口组合服务标识String11:获取openId,2:刷新访问令牌,3:获取用户信息
5userId用户IDString128
6uniqueId唯一标识IDString40
7uniqueType唯一标识类型String1

scopeList说明:

序号key数据项名称类型长度是否必输数据项说明
1scopeName资源英文名称String50get_nor_user_info:获取用户昵称、用户头像等信息 普通授权 get_associate_user_info:获取用户昵称、用户头像、手机号码等信息 关联授权 get_tight_user_info: 获取用户昵称、用户头像、手机号码、证件号等信息 紧密授权 get_core_user_info:获取用户昵称、用户头像、手机号码、证件号、卡号等信息 核心授权 get_default_user_info:获取openId等信息 默认授权 get_weak_user_info:弱认证用户获取用户信息 弱认证用户授权

业务输出项

序号key数据项名称类型长度是否非空数据项说明
1accessToken访问令牌String32新的访问令牌
2expiresIn访问令牌的有效期String10单位为秒
3refreshToken刷新令牌String32新的刷新令牌
4openIdopenIdString32
服务响应码响应信息
00000000交易成功