java 实现获取支付宝授权获取会员信息

1.配置支付宝所需参数

2.实现类 

Java根据获取到的参数,拼接起来返回给安卓,让安卓调用支付宝授权获取会员信息:

@ApiOperation(value = "拼接支付宝授权页面所需参数", httpMethod = "POST", produces = "application/json;charset=UTF-8")
@ApiImplicitParam(value = "*用户token", name = "token",defaultValue ="", dataType = "String",paramType="header")
@PostMapping(value = "/transfer/connectAlipayParams")
public Result connectAlipayParams(HttpServletRequest request, HttpServletResponse response) {Map map = new HashMap();try {String redirect = alipayService.buildAuthInfoMap();map.put("datas",redirect);return Result.ok(map);}catch (Exception e){e.printStackTrace();return Result.error(901,"拼接支付宝授权页面所需参数失败!");}
}

3.用到的工具方法

 
@Value("${app.alipay.appid}")
private String appid;@Value("${app.alipay.pid}")
private String pid;
@Value("${app.alipay.rsapri}")
private String rsapri;
public String buildAuthInfoMap() throws AlipayApiException, UnsupportedEncodingException {Map keyValues = new HashMap();// 商户签约拿到的app_id,如:2013081700024223keyValues.put("app_id", appid);// 商户签约拿到的pid,如:2088102123816631keyValues.put("pid", pid);// 服务接口名称, 固定值keyValues.put("apiname", "com.alipay.account.auth");// 服务接口名称, 固定值keyValues.put("methodname", "alipay.open.auth.sdk.code.get");// 商户类型标识, 固定值keyValues.put("app_name", "mc");// 业务类型, 固定值keyValues.put("biz_type", "openservice");// 产品码, 固定值keyValues.put("product_id", "APP_FAST_LOGIN");// 授权范围, 固定值keyValues.put("scope", "kuaijie");// 商户唯一标识,如:kkkkk091125keyValues.put("target_id", "kkkkk091125");// 授权类型, 固定值keyValues.put("auth_type", "AUTHACCOUNT");// 签名类型keyValues.put("sign_type", "RSA2");StringBuilder sbInfo = new StringBuilder();for (String key : keyValues.keySet()) {sbInfo.append(key).append("=").append(keyValues.get(key)).append("&");}sbInfo = sbInfo.deleteCharAt(sbInfo.length() - 1);keyValues.put("sign", AlipaySignature.rsa256Sign(sbInfo.toString(), rsapri, "UTF-8"));StringBuilder fInfo = new StringBuilder();for (String key : keyValues.keySet()) {fInfo.append(key).append("=").append(URLEncoder.encode(keyValues.get(key), "UTF-8")).append("&");}fInfo = fInfo.deleteCharAt(fInfo.length() - 1);return fInfo.toString();}

在该功能中用的依赖如下:

com.alipay.sdkalipay-sdk-java4.9.5.ALL

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部