支付宝生活号对接-----(二)获取用户信息

记录一下支付宝获取用户的信息

接着上一次支付宝授权之后 我们获取一下用户信息

依旧是用支付宝沙箱环境,但是我用沙箱获取的是登录用户(企业)的营业执照,获取用户信息是同理的

下面这用servlet写的

https://openapi.alipaydev.com/gateway.do 沙箱接口地址

https://openapi.alipay.com/gateway.do 正式接口地址

private String resultCode(HttpServletRequest request, HttpServletResponse response) throws Exception { String code = null; String openid = null; String state= request.getParameter("state"); code = request.getParameter("auth_code");// 用户授权码 String cretNo=null; AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do", AlipayServiceEnvConstantsfs2.APP_ID, AlipayServiceEnvConstantsfs2.PRIVATE_KEY, "json", AlipayServiceEnvConstantsfs2.CHARSET, AlipayServiceEnvConstantsfs2.ALIPAY_PUBLIC_KEY, "RSA2"); /* AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do", AlipayServiceEnvConstantsfs2.APP_ID, AlipayServiceEnvConstantsfs2.PRIVATE_KEY, "json", AlipayServiceEnvConstantsfs2.CHARSET, AlipayServiceEnvConstantsfs2.ALIPAY_PUBLIC_KEY, "RSA2"); */ AlipaySystemOauthTokenRequest tokenRequest = new AlipaySystemOauthTokenRequest(); tokenRequest.setCode(code); tokenRequest.setGrantType(AlipayServiceEnvConstantsfs2.GRANT_TYPE); try {

// 第一步 获取accessToken 令牌 AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(tokenRequest); openid = oauthTokenResponse.getUserId(); String accessToken = oauthTokenResponse.getAccessToken(); System.out.println("accessToken==============="+accessToken);

// 第二步 根据令牌去请求接口 获取用户信息 AlipayClient alipayClient1 = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do", AlipayServiceEnvConstantsfs2.APP_ID, AlipayServiceEnvConstantsfs2.PRIVATE_KEY, "json", AlipayServiceEnvConstantsfs2.CHARSET, AlipayServiceEnvConstantsfs2.ALIPAY_PUBLIC_KEY, "RSA2"); AlipayUserInfoShareRequest request1 = new AlipayUserInfoShareRequest(); AlipayUserInfoShareResponse response1 = alipayClient.execute(request1,accessToken); if(response1.isSuccess()){ System.out.println("调用成功"); if((response1.getIsCertified()).equals("T")) { if(response1.getCertType()!=null || response1.getCertType()!="") { //获取用户信息 } } } else { System.out.println("调用失败"); } } catch (AlipayApiException e) { //处理异常 e.printStackTrace(); } String url=state+"?cretNo="+cretNo;//H5要用的参数 比如用户id String furl="redirect:"+H5回调地址 // System.err.println("重定向地址: "+furl); return furl; }

/**支付宝公钥-从支付宝生活号详情页面获取*/ public static final String ALIPAY_PUBLIC_KEY = "支付宝公钥"; /**签名编码-视支付宝服务窗要求*/ public static final String SIGN_CHARSET = "GBK";

/**字符编码-传递给支付宝的数据编码*/ public static final String CHARSET = "GBK";

/**签名类型-视支付宝服务窗要求*/ public static final String SIGN_TYPE = "RSA2"; /**开发者账号PID*/ 沙箱 public static final String PARTNER = "2088431776038131";

/** 服务窗appId */沙箱 //TODO !!!! 注:该appId必须设为开发者自己的生活号id public static final String APP_ID = "2016092500594515";

//私钥 public static final String PRIVATE_KEY = 自己生成的私钥; /**支付宝网关*/ public static final String ALIPAY_GATEWAY = "https://openapi.alipaydev.com/gateway.do";

/**授权访问令牌的授权类型*/ public static final String GRANT_TYPE = "authorization_code"; }

经验分享 程序员 微信小程序 职场和发展