|  | @@ -12,6 +12,7 @@ import com.zanxiang.common.domain.ResultMap;
 | 
											
												
													
														|  |  import com.zanxiang.common.enums.HttpStatusEnum;
 |  |  import com.zanxiang.common.enums.HttpStatusEnum;
 | 
											
												
													
														|  |  import com.zanxiang.common.enums.OsEnum;
 |  |  import com.zanxiang.common.enums.OsEnum;
 | 
											
												
													
														|  |  import com.zanxiang.common.enums.ResEnum;
 |  |  import com.zanxiang.common.enums.ResEnum;
 | 
											
												
													
														|  | 
 |  | +import com.zanxiang.common.utils.JsonUtil;
 | 
											
												
													
														|  |  import com.zanxiang.sdk.common.util.HttpUtil;
 |  |  import com.zanxiang.sdk.common.util.HttpUtil;
 | 
											
												
													
														|  |  import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 |  |  import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 | 
											
												
													
														|  |  import com.zanxiang.sdk.service.OrderPayService;
 |  |  import com.zanxiang.sdk.service.OrderPayService;
 | 
											
										
											
												
													
														|  | @@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
 | 
											
												
													
														|  |  import javax.servlet.http.HttpServletRequest;
 |  |  import javax.servlet.http.HttpServletRequest;
 | 
											
												
													
														|  |  import javax.servlet.http.HttpServletResponse;
 |  |  import javax.servlet.http.HttpServletResponse;
 | 
											
												
													
														|  |  import java.net.URLEncoder;
 |  |  import java.net.URLEncoder;
 | 
											
												
													
														|  | 
 |  | +import java.nio.charset.StandardCharsets;
 | 
											
												
													
														|  |  import java.util.Enumeration;
 |  |  import java.util.Enumeration;
 | 
											
												
													
														|  |  import java.util.HashMap;
 |  |  import java.util.HashMap;
 | 
											
												
													
														|  |  import java.util.Map;
 |  |  import java.util.Map;
 | 
											
										
											
												
													
														|  | @@ -38,17 +40,34 @@ import java.util.regex.Pattern;
 | 
											
												
													
														|  |  @Service("AliPayService")
 |  |  @Service("AliPayService")
 | 
											
												
													
														|  |  public class AliPayServiceImpl extends PayService implements OrderPayService {
 |  |  public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    private Pattern pattern = Pattern.compile("action=\"(.*)\">", Pattern.CASE_INSENSITIVE);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    private Pattern param = Pattern.compile("value=\"(.*)\">", Pattern.CASE_INSENSITIVE);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    private Pattern mobileClientParam = Pattern.compile("\\{\"queryResultUrl\".*?\"}", Pattern.CASE_INSENSITIVE);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 异步回调地址
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  |      @Value("${payConfig.alipay.returnUrl}")
 |  |      @Value("${payConfig.alipay.returnUrl}")
 | 
											
												
													
														|  |      private String returnUrl;
 |  |      private String returnUrl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 同步回调地址
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  |      @Value("${payConfig.alipay.notifyUrl}")
 |  |      @Value("${payConfig.alipay.notifyUrl}")
 | 
											
												
													
														|  |      private String notifyUrl;
 |  |      private String notifyUrl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  | 
 |  | +     * 支付配置
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    private Config config;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * 支付调起
 |  |       * 支付调起
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param product
 |  | 
 | 
											
												
													
														|  | -     * @return
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param product : 商品参数
 | 
											
												
													
														|  | 
 |  | +     * @return : 返回调起支付参数
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      public ResultMap create(ProductPayParamBO product) {
 |  |      public ResultMap create(ProductPayParamBO product) {
 | 
											
										
											
												
													
														|  | @@ -61,7 +80,7 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |              case 1:
 |  |              case 1:
 | 
											
												
													
														|  |                  return this.pc(product);
 |  |                  return this.pc(product);
 | 
											
												
													
														|  |              case 2:
 |  |              case 2:
 | 
											
												
													
														|  | -                return this.mobile2(product);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                return this.mobile(product);
 | 
											
												
													
														|  |              case 3:
 |  |              case 3:
 | 
											
												
													
														|  |                  return this.app(product);
 |  |                  return this.app(product);
 | 
											
												
													
														|  |              default:
 |  |              default:
 | 
											
										
											
												
													
														|  | @@ -72,14 +91,14 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * 异步回调
 |  |       * 异步回调
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param request
 |  | 
 | 
											
												
													
														|  | -     * @param response
 |  | 
 | 
											
												
													
														|  | -     * @return
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param request  : 请求参数
 | 
											
												
													
														|  | 
 |  | +     * @param response : 返回参数
 | 
											
												
													
														|  | 
 |  | +     * @return : 返回结果
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      public String notify(HttpServletRequest request, HttpServletResponse response) {
 |  |      public String notify(HttpServletRequest request, HttpServletResponse response) {
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
												
													
														|  | -            Map<String, String> params = new HashMap<String, String>();
 |  | 
 | 
											
												
													
														|  | 
 |  | +            Map<String, String> params = new HashMap<>();
 | 
											
												
													
														|  |              Enumeration<String> parameterNames = request.getParameterNames();
 |  |              Enumeration<String> parameterNames = request.getParameterNames();
 | 
											
												
													
														|  |              while (parameterNames.hasMoreElements()) {
 |  |              while (parameterNames.hasMoreElements()) {
 | 
											
												
													
														|  |                  String parameterName = parameterNames.nextElement();
 |  |                  String parameterName = parameterNames.nextElement();
 | 
											
										
											
												
													
														|  | @@ -108,14 +127,14 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * 同步回调
 |  |       * 同步回调
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param request
 |  | 
 | 
											
												
													
														|  | -     * @return
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param request : 请求参数
 | 
											
												
													
														|  | 
 |  | +     * @return : 返回结果
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      public ResultMap synNotify(HttpServletRequest request) {
 |  |      public ResultMap synNotify(HttpServletRequest request) {
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
												
													
														|  |              //获取支付宝GET过来反馈信息
 |  |              //获取支付宝GET过来反馈信息
 | 
											
												
													
														|  | -            Map<String, String> params = new HashMap<String, String>();
 |  | 
 | 
											
												
													
														|  | 
 |  | +            Map<String, String> params = new HashMap<>();
 | 
											
												
													
														|  |              Map<String, String[]> requestParams = request.getParameterMap();
 |  |              Map<String, String[]> requestParams = request.getParameterMap();
 | 
											
												
													
														|  |              for (String name : requestParams.keySet()) {
 |  |              for (String name : requestParams.keySet()) {
 | 
											
												
													
														|  |                  String[] values = requestParams.get(name);
 |  |                  String[] values = requestParams.get(name);
 | 
											
										
											
												
													
														|  | @@ -125,7 +144,7 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |                              : valueStr + values[i] + ",";
 |  |                              : valueStr + values[i] + ",";
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |                  //乱码解决,这段代码在出现乱码时使用
 |  |                  //乱码解决,这段代码在出现乱码时使用
 | 
											
												
													
														|  | -                valueStr = new String(valueStr.getBytes("ISO-8859-1"), Constants.UTF8);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                valueStr = new String(valueStr.getBytes("ISO-8859-1"), StandardCharsets.UTF_8);
 | 
											
												
													
														|  |                  params.put(name, valueStr);
 |  |                  params.put(name, valueStr);
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |              //商户订单号
 |  |              //商户订单号
 | 
											
										
											
												
													
														|  | @@ -154,112 +173,86 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  | -     * 手机支付
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * h5支付
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param product
 |  | 
 | 
											
												
													
														|  | -     * @return
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param product : 商品参数
 | 
											
												
													
														|  | 
 |  | +     * @return : 返回支付调起参数
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      private ResultMap mobile(ProductPayParamBO product) {
 |  |      private ResultMap mobile(ProductPayParamBO product) {
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
												
													
														|  | -            log.info("mobile端支付生成,请求参数 bo:{}", product);
 |  | 
 | 
											
												
													
														|  |              AlipayTradeWapPayResponse response = Factory.Payment
 |  |              AlipayTradeWapPayResponse response = Factory.Payment
 | 
											
												
													
														|  |                      .Wap().asyncNotify(notifyUrl)
 |  |                      .Wap().asyncNotify(notifyUrl)
 | 
											
												
													
														|  |                      .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), "", this.returnUrl);
 |  |                      .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), "", this.returnUrl);
 | 
											
												
													
														|  | -            log.info("mobile端支付生成,result:{}", response);
 |  | 
 | 
											
												
													
														|  | -            if (ResponseChecker.success(response)) {
 |  | 
 | 
											
												
													
														|  | -                System.out.println("mobile端支付生成================");
 |  | 
 | 
											
												
													
														|  | -                System.out.println(response.getBody());
 |  | 
 | 
											
												
													
														|  | -                return ResultMap.ok(product.getPayDevice(), response.getBody());
 |  | 
 | 
											
												
													
														|  | -            } else {
 |  | 
 | 
											
												
													
														|  | -                return ResultMap.ok(ResEnum.FAIL.getMsg());
 |  | 
 | 
											
												
													
														|  | 
 |  | +            //请求失败
 | 
											
												
													
														|  | 
 |  | +            if (!ResponseChecker.success(response)) {
 | 
											
												
													
														|  | 
 |  | +                log.error("支付宝h5支付失败,product : {}, response : {}", JsonUtil.toString(product), JsonUtil.toString(response));
 | 
											
												
													
														|  | 
 |  | +                return ResultMap.error(ResEnum.FAIL.getMsg());
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -        } catch (Exception e) {
 |  | 
 | 
											
												
													
														|  | -            return ResultMap.error(ResEnum.FAIL.getMsg());
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -    private ResultMap mobile2(ProductPayParamBO product) {
 |  | 
 | 
											
												
													
														|  | -        try {
 |  | 
 | 
											
												
													
														|  | -            log.info("mobile端支付生成,请求参数 bo:{}", product);
 |  | 
 | 
											
												
													
														|  | -            AlipayTradeWapPayResponse response = Factory.Payment
 |  | 
 | 
											
												
													
														|  | -                    .Wap().asyncNotify(notifyUrl)
 |  | 
 | 
											
												
													
														|  | -                    .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), "", this.returnUrl);
 |  | 
 | 
											
												
													
														|  | -            log.info("mobile端支付生成,result:{}", response);
 |  | 
 | 
											
												
													
														|  | -            if (ResponseChecker.success(response)) {
 |  | 
 | 
											
												
													
														|  | -                HashMap<String, String> result = new HashMap<>();
 |  | 
 | 
											
												
													
														|  | -                String body = response.getBody();
 |  | 
 | 
											
												
													
														|  | -                result.put("fromData", body);
 |  | 
 | 
											
												
													
														|  | -                try {
 |  | 
 | 
											
												
													
														|  | -                    //安卓与ios系统时才单独获取app支付地址
 |  | 
 | 
											
												
													
														|  | -                    if (product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs()) || product.getDeviceSystem().contains(OsEnum.SYSTEM_IOS.getOs())) {
 |  | 
 | 
											
												
													
														|  | -                        Pattern pattern = Pattern.compile("action=\"(.*)\">", Pattern.CASE_INSENSITIVE);
 |  | 
 | 
											
												
													
														|  | -                        Matcher matcher = pattern.matcher(body);
 |  | 
 | 
											
												
													
														|  | -                        if (matcher.find()) {
 |  | 
 | 
											
												
													
														|  | -                            String url = matcher.group();
 |  | 
 | 
											
												
													
														|  | -                            url = url.substring(8, url.length() - 2);
 |  | 
 | 
											
												
													
														|  | -                            Pattern param = Pattern.compile("value=\"(.*)\">", Pattern.CASE_INSENSITIVE);
 |  | 
 | 
											
												
													
														|  | -                            Matcher paraMatcher = param.matcher(body);
 |  | 
 | 
											
												
													
														|  | -                            if (paraMatcher.find()) {
 |  | 
 | 
											
												
													
														|  | -                                String paramData = paraMatcher.group();
 |  | 
 | 
											
												
													
														|  | -                                paramData = paramData.substring(7, paramData.length() - 2);
 |  | 
 | 
											
												
													
														|  | -                                paramData = paramData.replace(""", "\"");
 |  | 
 | 
											
												
													
														|  | -                                String mobileClientUrl = HttpUtil.postDataUrl(url, "biz_content=" + paramData, null);
 |  | 
 | 
											
												
													
														|  | -                                System.out.println(mobileClientUrl);
 |  | 
 | 
											
												
													
														|  | -                                String alipayContentBody = HttpUtil.postData(mobileClientUrl, "");
 |  | 
 | 
											
												
													
														|  | -                                Pattern mobileClientParam = Pattern.compile("\\{\"queryResultUrl\".*?\"}", Pattern.CASE_INSENSITIVE);
 |  | 
 | 
											
												
													
														|  | -                                Matcher mobileClientMatcher = mobileClientParam.matcher(alipayContentBody);
 |  | 
 | 
											
												
													
														|  | -                                System.out.println(mobileClientMatcher);
 |  | 
 | 
											
												
													
														|  | -                                String deeplink_android = "alipays://platformapi/startApp?appId=20000125&orderSuffix=";
 |  | 
 | 
											
												
													
														|  | -                                String deeplink_ios = "alipay://alipayclient/?";
 |  | 
 | 
											
												
													
														|  | -                                if (mobileClientMatcher.find()) {
 |  | 
 | 
											
												
													
														|  | -                                    //示例:{"queryResultUrl":"/h5/h5RoutePayResultQuery.json?h5_route_token=GZ00rxXoidjHj2airAK8nhYz70MUBsmobilecashierGZ00","invokeAlipayData":{"dataString":"h5_route_token=\"GZ00rxXoidjHj2airAK8nhYz70MUBsmobilecashierGZ00\"&is_h5_route=\"true\""}
 |  | 
 | 
											
												
													
														|  | -                                    String pageData = mobileClientMatcher.group() + "}";
 |  | 
 | 
											
												
													
														|  | -                                    JSONObject jsonObject = JSONObject.parseObject(pageData);
 |  | 
 | 
											
												
													
														|  | -                                    Object invokeAlipayData = jsonObject.get("invokeAlipayData");
 |  | 
 | 
											
												
													
														|  | -                                    String dataString = JSONObject.parseObject(invokeAlipayData.toString()).get("dataString").toString();
 |  | 
 | 
											
												
													
														|  | -                                    deeplink_android += URLEncoder.encode(dataString, Constants.UTF8);
 |  | 
 | 
											
												
													
														|  | -                                    deeplink_ios += URLEncoder.encode(pageData, Constants.UTF8);
 |  | 
 | 
											
												
													
														|  | -                                    if (product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs())) {
 |  | 
 | 
											
												
													
														|  | -                                        result.put("appLink", deeplink_android);
 |  | 
 | 
											
												
													
														|  | -                                    } else {
 |  | 
 | 
											
												
													
														|  | -                                        result.put("appLink", deeplink_ios);
 |  | 
 | 
											
												
													
														|  | -                                    }
 |  | 
 | 
											
												
													
														|  | -                                }
 |  | 
 | 
											
												
													
														|  | -                            }
 |  | 
 | 
											
												
													
														|  | 
 |  | +            HashMap<String, String> result = new HashMap<>();
 | 
											
												
													
														|  | 
 |  | +            String body = response.getBody();
 | 
											
												
													
														|  | 
 |  | +            result.put("fromData", body);
 | 
											
												
													
														|  | 
 |  | +            //安卓与ios系统时才单独获取app支付地址
 | 
											
												
													
														|  | 
 |  | +            if (!product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs()) && !product.getDeviceSystem().contains(OsEnum.SYSTEM_IOS.getOs())) {
 | 
											
												
													
														|  | 
 |  | +                return ResultMap.ok(product.getPayDevice(), result);
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            Matcher matcher = pattern.matcher(body);
 | 
											
												
													
														|  | 
 |  | +            //解析短链
 | 
											
												
													
														|  | 
 |  | +            if (matcher.find()) {
 | 
											
												
													
														|  | 
 |  | +                String url = matcher.group();
 | 
											
												
													
														|  | 
 |  | +                url = url.substring(8, url.length() - 2);
 | 
											
												
													
														|  | 
 |  | +                Matcher paraMatcher = param.matcher(body);
 | 
											
												
													
														|  | 
 |  | +                if (paraMatcher.find()) {
 | 
											
												
													
														|  | 
 |  | +                    String paramData = paraMatcher.group();
 | 
											
												
													
														|  | 
 |  | +                    paramData = paramData.substring(7, paramData.length() - 2);
 | 
											
												
													
														|  | 
 |  | +                    paramData = paramData.replace(""", "\"");
 | 
											
												
													
														|  | 
 |  | +                    String mobileClientUrl = HttpUtil.postDataUrl(url, "biz_content=" + paramData, null);
 | 
											
												
													
														|  | 
 |  | +                    String aliPayContentBody = HttpUtil.postData(mobileClientUrl, "");
 | 
											
												
													
														|  | 
 |  | +                    Matcher mobileClientMatcher = mobileClientParam.matcher(aliPayContentBody);
 | 
											
												
													
														|  | 
 |  | +                    //todo : 这里存在一个写死的appId, 应该是沙箱环境的appId, 上线的时候要切换
 | 
											
												
													
														|  | 
 |  | +                    String deepLinkAndroid = "alipays://platformapi/startApp?appId=20000125&orderSuffix=";
 | 
											
												
													
														|  | 
 |  | +                    String deepLinkIos = "alipay://alipayclient/?";
 | 
											
												
													
														|  | 
 |  | +                    if (mobileClientMatcher.find()) {
 | 
											
												
													
														|  | 
 |  | +                        String pageData = mobileClientMatcher.group() + "}";
 | 
											
												
													
														|  | 
 |  | +                        JSONObject jsonObject = JSONObject.parseObject(pageData);
 | 
											
												
													
														|  | 
 |  | +                        Object invokeAliPayData = jsonObject.get("invokeAlipayData");
 | 
											
												
													
														|  | 
 |  | +                        String dataString = JSONObject.parseObject(invokeAliPayData.toString()).get("dataString").toString();
 | 
											
												
													
														|  | 
 |  | +                        deepLinkAndroid += URLEncoder.encode(dataString, Constants.UTF8);
 | 
											
												
													
														|  | 
 |  | +                        deepLinkIos += URLEncoder.encode(pageData, Constants.UTF8);
 | 
											
												
													
														|  | 
 |  | +                        if (product.getDeviceSystem().contains(OsEnum.SYSTEM_ANDROID.getOs())) {
 | 
											
												
													
														|  | 
 |  | +                            result.put("appLink", deepLinkAndroid);
 | 
											
												
													
														|  | 
 |  | +                        } else {
 | 
											
												
													
														|  | 
 |  | +                            result.put("appLink", deepLinkIos);
 | 
											
												
													
														|  |                          }
 |  |                          }
 | 
											
												
													
														|  |                      }
 |  |                      }
 | 
											
												
													
														|  | -                } catch (Exception e) {
 |  | 
 | 
											
												
													
														|  | -                    log.error("获取支付包app支付时发生异常,已通过from表单形式调起支付 fromData:{}, e:{}", body, e);
 |  | 
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  | -                return ResultMap.ok(product.getPayDevice(), result);
 |  | 
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -        } catch (
 |  | 
 | 
											
												
													
														|  | -                Exception e) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +            return ResultMap.ok(product.getPayDevice(), result);
 | 
											
												
													
														|  | 
 |  | +        } catch (Exception e) {
 | 
											
												
													
														|  | 
 |  | +            log.error("支付宝h5支付失败,meg : {}", e.getMessage());
 | 
											
												
													
														|  |              return ResultMap.error(ResEnum.FAIL.getMsg());
 |  |              return ResultMap.error(ResEnum.FAIL.getMsg());
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        return ResultMap.error(ResEnum.FAIL.getMsg());
 |  | 
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  | -     * 电脑支付
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * pc端电脑支付
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param product
 |  | 
 | 
											
												
													
														|  | -     * @return
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param product : 商品参数
 | 
											
												
													
														|  | 
 |  | +     * @return : 返回支付调起参数
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      private ResultMap pc(ProductPayParamBO product) {
 |  |      private ResultMap pc(ProductPayParamBO product) {
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
												
													
														|  | -            log.info("pc端支付生成, product : {}", product);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            log.info("pc端支付生成,请求参数 bo:{}", product);
 | 
											
												
													
														|  |              AlipayTradePagePayResponse response = Factory.Payment
 |  |              AlipayTradePagePayResponse response = Factory.Payment
 | 
											
												
													
														|  |                      .Page().asyncNotify(notifyUrl)
 |  |                      .Page().asyncNotify(notifyUrl)
 | 
											
												
													
														|  |                      .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), this.returnUrl);
 |  |                      .pay(product.getSubject(), product.getOutTradeNo(), product.getTotalFee(), this.returnUrl);
 | 
											
												
													
														|  | -            log.info("pc端支付生成, response : {}", response);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            log.info("pc端支付生成,result:{}", response);
 | 
											
												
													
														|  |              if (ResponseChecker.success(response)) {
 |  |              if (ResponseChecker.success(response)) {
 | 
											
												
													
														|  |                  return ResultMap.ok(product.getPayDevice(), response.getBody());
 |  |                  return ResultMap.ok(product.getPayDevice(), response.getBody());
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  |                  return ResultMap.error(ResEnum.FAIL.getMsg());
 |  |                  return ResultMap.error(ResEnum.FAIL.getMsg());
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          } catch (Exception e) {
 |  |          } catch (Exception e) {
 | 
											
												
													
														|  | -            log.error("pc端支付生成异常, e : {}", e.getMessage());
 |  | 
 | 
											
												
													
														|  | 
 |  | +            log.error("pc端支付生成异常 e:{}", e.getMessage());
 | 
											
												
													
														|  |              return ResultMap.error(ResEnum.FAIL.getMsg());
 |  |              return ResultMap.error(ResEnum.FAIL.getMsg());
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
										
											
												
													
														|  | @@ -267,8 +260,8 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * app支付
 |  |       * app支付
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param product
 |  | 
 | 
											
												
													
														|  | -     * @return
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param product : 商品参数
 | 
											
												
													
														|  | 
 |  | +     * @return : 返回支付调起参数
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      private ResultMap app(ProductPayParamBO product) {
 |  |      private ResultMap app(ProductPayParamBO product) {
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
										
											
												
													
														|  | @@ -281,7 +274,8 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |                  return ResultMap.error(ResEnum.FAIL.getMsg());
 |  |                  return ResultMap.error(ResEnum.FAIL.getMsg());
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |          } catch (Exception e) {
 |  |          } catch (Exception e) {
 | 
											
												
													
														|  | -            log.error("app端支付生成异常, e : {}", e.getMessage());
 |  | 
 | 
											
												
													
														|  | 
 |  | +            e.printStackTrace();
 | 
											
												
													
														|  | 
 |  | +            log.error("app端支付生成异常 e:{}", e.getMessage());
 | 
											
												
													
														|  |              return ResultMap.error(ResEnum.FAIL.getMsg());
 |  |              return ResultMap.error(ResEnum.FAIL.getMsg());
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
										
											
												
													
														|  | @@ -289,11 +283,12 @@ public class AliPayServiceImpl extends PayService implements OrderPayService {
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * 配置初始化
 |  |       * 配置初始化
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param obj config
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param obj : 配置参数
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      public void configInit(String obj) {
 |  |      public void configInit(String obj) {
 | 
											
												
													
														|  |          Config config = JSONObject.parseObject(obj, Config.class);
 |  |          Config config = JSONObject.parseObject(obj, Config.class);
 | 
											
												
													
														|  |          Factory.setOptions(config);
 |  |          Factory.setOptions(config);
 | 
											
												
													
														|  | 
 |  | +        this.config = config;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  }
 |  |  }
 |