|
@@ -2,10 +2,10 @@ package cn.kdan.pdf.backend.core.service.impl;
|
|
|
|
|
|
import cn.kdan.pdf.backend.core.model.Subscriptions;
|
|
|
import cn.kdan.pdf.backend.core.service.AlipayService;
|
|
|
-import cn.kdan.pdf.backend.core.service.OrderService;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alipay.api.AlipayApiException;
|
|
|
import com.alipay.api.AlipayClient;
|
|
|
+import com.alipay.api.domain.AlipayTradePagePayModel;
|
|
|
import com.alipay.api.request.AlipayTradeCloseRequest;
|
|
|
import com.alipay.api.request.AlipayTradePagePayRequest;
|
|
|
import com.alipay.api.request.AlipayTradeQueryRequest;
|
|
@@ -17,10 +17,9 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.env.Environment;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import utils.DateUtils;
|
|
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.Date;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -31,8 +30,6 @@ public class AlipayServiceImpl implements AlipayService {
|
|
|
|
|
|
@Autowired
|
|
|
private Environment config;
|
|
|
- @Autowired
|
|
|
- private OrderService orderService;
|
|
|
|
|
|
/**
|
|
|
* 支付宝开放平台接收 request 请求对象后
|
|
@@ -50,30 +47,28 @@ public class AlipayServiceImpl implements AlipayService {
|
|
|
*/
|
|
|
@Override
|
|
|
public String createAlipayPageUrl(String subject, String tradeNo, Float price, Subscriptions subscription) {
|
|
|
- //封装bizContent对象
|
|
|
- JSONObject bizContent = new JSONObject();
|
|
|
- bizContent.put("out_trade_no", tradeNo);
|
|
|
- bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
|
|
|
- bizContent.put("subject", subject);
|
|
|
- /*//根据环境来设置价格
|
|
|
- if(false){
|
|
|
- price = subscription.getPrice();
|
|
|
- }else{
|
|
|
- price = 0.01f;
|
|
|
- }*/
|
|
|
- bizContent.put("total_amount", price);
|
|
|
+ //封装bizModel对象
|
|
|
+ AlipayTradePagePayModel model =new AlipayTradePagePayModel();
|
|
|
+ model.setOutTradeNo(tradeNo);
|
|
|
+ model.setTotalAmount(price.toString());
|
|
|
+ model.setSubject(subject);
|
|
|
+ model.setProductCode("FAST_INSTANT_TRADE_PAY");
|
|
|
+ Date date = DateUtils.addHours(new Date(), 2, 0);
|
|
|
+ String timeExpire = DateUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");
|
|
|
+ model.setTimeExpire(timeExpire);//todo 暂定当前时间2小时后过期
|
|
|
|
|
|
// 最终目的是获取url路径,联调支付宝
|
|
|
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
|
|
|
request.setReturnUrl(config.getProperty("alipay.return-url"));
|
|
|
//设置回调return_url、响应url
|
|
|
- String notifyUrl = config.getProperty("notify_url");
|
|
|
- request.setNotifyUrl(notifyUrl);
|
|
|
- request.setBizContent(bizContent.toString());
|
|
|
+ request.setNotifyUrl(config.getProperty("notify_url"));
|
|
|
+ request.setBizModel(model);
|
|
|
AlipayTradePagePayResponse response = null;
|
|
|
try {
|
|
|
log.info("支付宝支付调用参数:{}", JSONObject.toJSONString(request));
|
|
|
- response = alipayClient.pageExecute(request);
|
|
|
+ //get方式请求,即生成url链接
|
|
|
+ response = alipayClient.pageExecute(request,"GET");
|
|
|
+// response = alipayClient.pageExecute(request);
|
|
|
log.info("支付宝支付调用成功:{}", JSONObject.toJSONString(response));
|
|
|
} catch (AlipayApiException e) {
|
|
|
log.error("支付宝支付调用失败:{}", e.getMessage());
|