添加pcpay 支付
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
package com.chaozhanggui.system.cashierservice.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.AlipayClient;
|
||||
import com.alipay.api.DefaultAlipayClient;
|
||||
import com.alipay.api.request.AlipaySystemOauthTokenRequest;
|
||||
import com.alipay.api.request.AlipayUserInfoShareRequest;
|
||||
import com.alipay.api.response.AlipaySystemOauthTokenResponse;
|
||||
import com.alipay.api.response.AlipayUserInfoShareResponse;
|
||||
import com.chaozhanggui.system.cashierservice.annotation.LimitSubmit;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbOrderDetail;
|
||||
import com.chaozhanggui.system.cashierservice.entity.dto.ReturnGroupOrderDto;
|
||||
@@ -10,14 +18,18 @@ import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
||||
import com.chaozhanggui.system.cashierservice.sign.Result;
|
||||
import com.chaozhanggui.system.cashierservice.util.IpUtil;
|
||||
import com.chaozhanggui.system.cashierservice.util.RedisCst;
|
||||
import com.chaozhanggui.system.cashierservice.util.WechatUtil;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@CrossOrigin(origins = "*")
|
||||
@RestController
|
||||
@@ -278,4 +290,98 @@ public class PayController {
|
||||
){
|
||||
return payService.getOrderDiscount(staffId, orderId, token);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("pcscanpay")
|
||||
@LimitSubmit(key = "pcscanpay:%s")
|
||||
public Result pcscanpay(HttpServletRequest request,@RequestBody PaymentReq paymentReq){
|
||||
try {
|
||||
return payService.pcscanpay(paymentReq.getOrderId(),IpUtil.getIpAddr(request),paymentReq.getUserId(),paymentReq.getPayType());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Result.fail(CodeEnum.FAIL);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("createOrder")
|
||||
public Result createOrder(HttpServletRequest request,@RequestBody PaymentReq paymentReq){
|
||||
try {
|
||||
return payService.createOrder(IpUtil.getIpAddr(request),paymentReq.getUserId(),paymentReq.getPayType(),paymentReq.getShopId(),paymentReq.getPayAmount());
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Result.fail(CodeEnum.FAIL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Value("${wx.ysk.appId}")
|
||||
private String appId;
|
||||
|
||||
@Value("${wx.ysk.secrete}")
|
||||
private String secrete;
|
||||
|
||||
|
||||
|
||||
@Value("${ali.appId}")
|
||||
private String aliAppId;
|
||||
|
||||
@Value("${ali.privateKey}")
|
||||
private String privateKey;
|
||||
|
||||
@Value("${ali.publicKey}")
|
||||
private String publicKey;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取支付宝或微信openId
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/openId")
|
||||
public Result getOpenId(
|
||||
@RequestParam String code,
|
||||
@RequestParam String payType
|
||||
) throws AlipayApiException {
|
||||
|
||||
if("WECHAT".equals(payType)){
|
||||
JSONObject SessionKeyOpenId = WechatUtil.getSessionKeyOrOpenId(code, appId, secrete);
|
||||
log.info("SessionKeyOpenId:{}",SessionKeyOpenId.toString());
|
||||
String openid = SessionKeyOpenId.getString("openid");
|
||||
if(Objects.isNull(openid)){
|
||||
return Result.fail("获取微信id失败");
|
||||
}
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS,openid);
|
||||
}else if("ALIPAY".equals(payType)){
|
||||
|
||||
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppId,privateKey,"json","GBK",publicKey,"RSA2");
|
||||
AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();
|
||||
AlipayUserInfoShareResponse response = alipayClient.execute(request,code);
|
||||
log.info("AlipayUserInfoShareResponse:{}",JSONObject.toJSONString(response));
|
||||
if(!response.isSuccess()){
|
||||
return Result.fail("获取支付宝userId失败");
|
||||
}
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS,response.getUserId());
|
||||
}
|
||||
|
||||
return Result.fail(CodeEnum.FAIL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user