Commit bf13278e authored by jiaorz's avatar jiaorz

添加支付宝授权接口

parent 2883ad2c
......@@ -37,6 +37,8 @@ public class AppUserAlipay {
@Column(name = "is_del")
private Integer isDel;
@ApiModelProperty("昵称")
private String nickname;
......
package com.github.wxiaoqi.security.admin.biz;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.entity.AppUserAlipay;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserRelationTemp;
import com.github.wxiaoqi.security.admin.mapper.AppUserAlipayMapper;
import com.github.wxiaoqi.security.admin.mapper.AppUserRelationTempMapper;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
/**
......@@ -18,7 +31,19 @@ import java.util.List;
* @date 2019-07-03 16:36:44
*/
@Service
public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay> {
@Slf4j
public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay>{
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
AppUserLoginBiz appUserLoginBiz;
@Autowired
ThirdFeign thirdFeign;
//添加支付宝账号
public void addAlipay(Integer userId,String txAlipay){
......@@ -43,5 +68,46 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay
return selectByExample(example);
}
/**
* 支付宝授权获取用户信息
* @param code
* @return
*/
public ObjectRestResponse getUserInfo(String code, HttpServletRequest request) {
String username = null;
AppUserAlipay appUserAlipay = new AppUserAlipay();
try {
username = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)).getId();
if (StringUtils.isBlank(username)) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
} else {
appUserAlipay.setUserId(Integer.parseInt(username));
}
} catch (Exception e) {
e.printStackTrace();
}
String result = thirdFeign.getAliPayUserInfo(code).getData();
if (StringUtils.isNotBlank(result)) {
JSONObject jsonObject = JSONObject.parseObject(result);
if (jsonObject != null && jsonObject.getString("code").equals("10000")) {
String account = jsonObject.getString("userId");
if (account != null) {
appUserAlipay.setTxAlipay(account);
appUserAlipay.setCrtTime(new Date().getTime());
appUserAlipay.setIsDel(0);
}
String nickname = jsonObject.getString("nickName");
if (nickname != null) {
appUserAlipay.setNickname(nickname);
}
log.info("用户支付宝信息: {}", appUserAlipay.toString());
insertSelectiveRe(appUserAlipay);
return ObjectRestResponse.succ();
} else {
return ObjectRestResponse.createFailedResult(Integer.parseInt(jsonObject.getString("code")), jsonObject.getString("sub_msg"));
}
}
return ObjectRestResponse.createDefaultFail();
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppUserAlipayBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/alipay")
public class AppUserAliPayController {
@Autowired
AppUserAlipayBiz appUserAlipayBiz;
@GetMapping("/getUserInfo")
public ObjectRestResponse getUserInfo(String code, HttpServletRequest request) {
return appUserAlipayBiz.getUserInfo(code, request);
}
}
......@@ -83,4 +83,8 @@ public interface ThirdFeign {
/*************************************支付***************************************/
@PostMapping("/pay/app/unauth/transfer_account")
String transferAccount(@RequestBody FundPayVo fundPayVo) throws Exception;
@GetMapping("/info/app/unauth/getAliPayUserInfo")
public ObjectRestResponse<String> getAliPayUserInfo(@RequestParam(value = "code")String code);
}
......@@ -460,18 +460,25 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> implements In
request.setCode(code);
AlipaySystemOauthTokenResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
log.info("获取用户token调用成功,获取用户信息 {}", response.getBody());
if(response.getAccessToken() != null) {
AlipayUserInfoShareRequest alipayUserInfoShareRequest = new AlipayUserInfoShareRequest();
AlipayUserInfoShareResponse alipayUserInfoShareResponse = alipayClient.execute(alipayUserInfoShareRequest,response.getAccessToken());
if(alipayUserInfoShareResponse.isSuccess()){
log.info("获取用户支付宝信息调用成功, {}", alipayUserInfoShareResponse.getBody());
return alipayUserInfoShareResponse.getBody();
} else {
log.info("获取用户支付宝信息调用失败, {}", alipayUserInfoShareResponse.getBody());
}
}
} else {
System.out.println("调用失败");
log.info("获取用户token调用失败, {}", response.getBody());
}
return response.toString();
return response.getBody();
}
//解冻预授权
public void fundAuthOrderUnFreeze(AlipayClient alipayClient) throws AlipayApiException {
AlipayFundAuthOrderUnfreezeRequest request = new AlipayFundAuthOrderUnfreezeRequest();
......@@ -587,7 +594,12 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> implements In
}
public static void main(String[] args) {
OrderPayBiz orderPayBiz = new OrderPayBiz();
try {
System.out.println(orderPayBiz.getAlipayToken(""));
} catch (AlipayApiException e) {
e.printStackTrace();
}
}
@Override
......
......@@ -4,9 +4,11 @@ package com.xxfc.platform.universal.controller;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.UserAgentUtil;
import com.xxfc.platform.universal.biz.OrderPayBiz;
import com.xxfc.platform.universal.biz.WeixinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -28,6 +30,9 @@ public class UserInfoController {
@Autowired
WeixinService weixinService;
@Autowired
OrderPayBiz orderPayBiz;
@Value("${wx.sendUrl}")
private String sendUrl;
......@@ -51,5 +56,15 @@ public class UserInfoController {
return ObjectRestResponse.succ();
}
@GetMapping("/app/unauth/getAliPayUserInfo")
public ObjectRestResponse<String> getAliPayUserInfo(String code) {
try {
return ObjectRestResponse.succ(orderPayBiz.getAlipayToken(code));
} catch (AlipayApiException e) {
e.printStackTrace();
}
return ObjectRestResponse.createDefaultFail();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment