提交 a3a797ef authored 作者: 吴德鹏's avatar 吴德鹏

update

上级 c5c72043
......@@ -40,17 +40,15 @@ public class PaypalConfig {
return sdkConfig;
}
@Scope("prototype")
@Bean
public OAuthTokenCredential authTokenCredential() {
return new OAuthTokenCredential(clientId, clientSecret, paypalSdkConfig());
}
@Scope("prototype")
@Bean
public APIContext apiContext(TokenRepository tokenRepository) {
Optional<Token> firstToken = tokenRepository.findFirstToken();
APIContext apiContext = new APIContext(firstToken.get().getToken());
public APIContext apiContext() throws PayPalRESTException {
APIContext apiContext = new APIContext(authTokenCredential().getAccessToken());
apiContext.setConfigurationMap(paypalSdkConfig());
return apiContext;
}
......
......@@ -10,8 +10,10 @@ import com.example.afrishop_v3.enums.ResultCodeEnum;
import com.example.afrishop_v3.models.*;
import com.example.afrishop_v3.repository.*;
import com.example.afrishop_v3.util.IdUtil;
import com.example.afrishop_v3.util.PayPalUtil;
import com.paypal.api.payments.*;
import com.paypal.base.rest.APIContext;
import com.paypal.base.rest.OAuthTokenCredential;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -25,10 +27,7 @@ import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.*;
/**
* @Auther: wudepeng
......@@ -54,24 +53,28 @@ public class PaypalContoller extends Controller {
@Value("${paypal.failed_page}")
private String PAYPAL_FAILED_PAGE;
@Value("${paypal.mode}")
private String mode;
private final APIContext apiContext;
private final APIContext oldApiContext;
private final TbCfOrderRepository orderRepository;
private final TbCfFinanceRepository financeRepository;
private final NetworkRepository networkRepository;
private final BonusRepository bonusRepository;
private final PostRepository postRepository;
private final UserRepository userRepository;
private final TokenRepository tokenRepository;
public PaypalContoller(APIContext apiContext, TbCfOrderRepository orderRepository, TbCfFinanceRepository financeRepository, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, UserRepository userRepository) {
this.apiContext = apiContext;
public PaypalContoller(APIContext oldApiContext, TbCfOrderRepository orderRepository, TbCfFinanceRepository financeRepository, NetworkRepository networkRepository, BonusRepository bonusRepository, PostRepository postRepository, UserRepository userRepository, TokenRepository tokenRepository) {
this.oldApiContext = oldApiContext;
this.orderRepository = orderRepository;
this.financeRepository = financeRepository;
this.networkRepository = networkRepository;
this.bonusRepository = bonusRepository;
this.postRepository = postRepository;
this.userRepository = userRepository;
this.tokenRepository = tokenRepository;
}
......@@ -82,14 +85,14 @@ public class PaypalContoller extends Controller {
* @return Result
*/
@PostMapping("/payment/{orderId}")
public Result payment(@PathVariable("orderId") String orderId) {
logger.info("APIContext info headers:"+apiContext.getHTTPHeaders());
logger.info("APIContext info configuration:"+apiContext.getConfigurationMap());
logger.info("APIContext info token:"+apiContext.getAccessToken());
logger.info("APIContext info requestId:"+apiContext.getRequestId());
logger.info("APIContext info soa:"+apiContext.getSOAPHeader());
public Result payment(@PathVariable("orderId") String orderId) throws IOException {
Result result = new Result();
//==========================支付信息校验==========================
//获取paypal的最新token
APIContext apiContext = getToken();
logger.info("APIContext info token:" + apiContext.getAccessToken());
//订单号
if (StringUtils.isBlank(orderId)) {
......@@ -165,6 +168,28 @@ public class PaypalContoller extends Controller {
return payErrorInfo(result);
}
public APIContext getToken() throws IOException {
//获取paypal的最新token
Optional<Token> tokenOptional = tokenRepository.findFirstToken();
Optional<String> token = Optional.empty();
if (tokenOptional.isPresent()) {
token = Optional.ofNullable(tokenOptional.get().getToken());
}
if (!token.isPresent()) {
String oldToken = oldApiContext.getAccessToken();
String token1 = PayPalUtil.getToken(oldToken);
token = Optional.ofNullable(token1);
}
APIContext apiContext = new APIContext(token.get());
Map<String, String> sdkConfig = new HashMap<>();
sdkConfig.put("mode", mode);
apiContext.setConfigurationMap(sdkConfig);
return apiContext;
}
/**
* 用户取消支付
*/
......@@ -185,6 +210,9 @@ public class PaypalContoller extends Controller {
@GetMapping("/success/{orderId}")
public void paymentSuccess(@PathVariable("orderId") String orderId, HttpServletRequest request, HttpServletResponse response) throws Exception {
logger.info("paypal支付校验开始,时间:" + getTime());
//获取paypal的最新token
APIContext apiContext = getToken();
boolean verify = false;
String payerId = request.getParameter("PayerID");
//订单id
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论