diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java index c105381..d46de47 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppUserController.java @@ -4,6 +4,7 @@ import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayClient; import com.alipay.api.AlipayConfig; import com.alipay.api.DefaultAlipayClient; @@ -119,36 +120,4 @@ public class AppUserController extends BaseController { return toAjax(appUserService.deleteAppUserByIds(ids)); } - - public static void main(String[] args) throws Exception{ - String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQChzpB6JWlP/2ZWtxcjvphN/ePSCkWYe1hSRwOyy+3jTvA31aVuPOOgC0WludwqLnWJnn6JV5m+Q7ZyJ4sOWmU4f+dDs2F31zrb21QLmF9ZcNpveVTsPQFYCZER2VU8ckLkIqS4RSKySJFGzbmuYyu+nIOct6dUoEhpEa+8o6k9cykplmoXI2wCn24c87qGLkKsvZQrT2nWI46ua57AvBAbkEGkFIbS4FxggP6Z1rUbj3tAREpEO7VQFvfe/DISIzer91U+yEnlmcz9nPhxmaIc0o8xbTW2surSMfoIzXkV8xit9EclGXkb4fZPr8t4N/viEVigQPGw9vxoDrKLhUphAgMBAAECggEAPnd1tYI97wFlq/KRP150hB+RVWRby+tKhLEfz2YFV+0Atj2H2VAufHn9kGZ5hdtbyx5iMXmdRCP2CooTmB3z1+UhDjTxWwe/lGNPRg60ON5lpgWMcIt4ulkvJVnnGyfthQ+O0gj2xSdY1qHTnmxw1eysrtMECZq7eby3QLdaPftYm/g57mHAjruUZBvylEBCnEpY94y7qyYUtgdefDB9n0NIVpqkUjIqOZutZsCjxkFEQlKerPJPllCzuzPQS3YHxTBLdu89F2JGHeMwO17f7XzA7OS3Jf6OvbyQ1OuoAF+NWnojzrehwhh4fqcg5I3rm/opZzgFvb4KxK6mc4sVwQKBgQD2C32Iv1RgCKVAURwKWogIZSkScs8Am2WIP/iCK4sX1+rRbCFlc6TaTqO3hSyR1CeSWwpdB/6TqfMCklCj0pLCiATzbWfSCQoDq6LxfHvs2o/ilu8T/qV5qI5CnugIzSni/3NfBEz2vwjHS8PAGyHrvedTay9SjEeFaDIzTm7eOQKBgQCoWot6zzJEKGXn5y2s828yQBU82OnE+OAf8sjT4MY5lF65+JmbARaIMY40OejA/fUngC/4bi6oNExEv5Y94w+E8VryZOm4lMzDevuImJWQoJsFoHS4rMtAaQly8GRpk18flVB9B1ZLM345sujcnFjPnmJInvDuI2cQaf8rsN1NaQKBgBWTbl+2f3yoZW1db3sM807hKBfhD3v7JI0tJuqrTNg7a/EPbWJLINKwALVQLVdgZlP0PdVopQ9n4NKB6CZlic8bRGvgVTFa75Dg1Tod83QSunlhSPfU5cfkWw1GiAx1iU3JnuFfLCybFfb8Et9ewbu9fHKZPJ4dhQwS1gwfvaMpAoGARE1/+1JmxWpSdfS//kRBn/SJ6UbkCSsj2zJoMjYmliPRDsiCoXWei6D3Xc8E1I/0T5NdYwBo44tcSiQks3UUzc4SJPe2L1IHhWO2+2NUgvn2CyFfWbGZQMecsso/IupMlIbCwgchBp+cnZItkZvJGGrc2zPI8gThArLOeQ5nqskCgYAxkVuRjkrY3Ide2bl17MD/qUZGUrXgfZJxOFI0ya+QinnGrPAxQaWZqyatp663DHOnMjD68Me8t/czhgMLm5g7VcxxPp60Qsx/9F/7l80LacFhMCrhCFW6GNSN1oFyAxokBBe+NgqDJIMJMk3zD4C5SvT1yc19TxoxEwa8lqgLLw=="; - String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyCpeqEUH58ZlTyGvHMD5/L46XVMJAWz5hRdp7oc5KRVt+7IhrNsqLwqRIp5jDXP8HjdnBOkuGb8FvnKSXwN4ydbR0PXXKIm1HSclJH2A3qjeYDuO1QJiE6UU/eB69sdTEfbnMqAaCPsFAbnCgvRZ+zowpVPqfZOs83812O8j+8UC8rEDyCtot26wLiz71Ccs5WzxQBVK02m258L5R43yb4NP9pXF8KZFg9vNpqTVHtX3p/PuMng6NSCbw2praghj8VFT849VPT0uGYRAEbx9uY3R+Y/GJtDlk4oYtMcA+56puudqGvPP96JhHYI5fr5M6IKewZTthG15P2li9dUCwwIDAQAB"; - AlipayConfig alipayConfig = new AlipayConfig(); - alipayConfig.setServerUrl("https://openapi-sandbox.dl.alipaydev.com/gateway.do"); - alipayConfig.setAppId("9021000136647545"); - alipayConfig.setPrivateKey(privateKey); - alipayConfig.setFormat("json"); - alipayConfig.setAlipayPublicKey(alipayPublicKey); - alipayConfig.setCharset("UTF-8"); - alipayConfig.setSignType("RSA2"); - AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig); - AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); - request.setNotifyUrl("http://139.224.213.131:7008/pay/test"); - AlipayTradeCreateModel model = new AlipayTradeCreateModel(); - model.setOutTradeNo("20150320010101001"); - model.setTotalAmount("88.88"); - model.setSubject("Iphone6 16G"); - // model.setBuyerId("2088722034284530"); - request.setBizModel(model); - AlipayTradeCreateResponse response = alipayClient.sdkExecute(request); - System.out.println(response.getBody()); - if (response.isSuccess()) { - System.out.println("调用成功"); - } else { - System.out.println("调用失败"); - // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 - // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); - // System.out.println(diagnosisUrl); - } - } } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java index 3208474..38b94e4 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/PayController.java @@ -1,5 +1,8 @@ package com.ruoyi.app.controller; +import com.alipay.api.AlipayApiException; +import com.alipay.api.request.AlipayTradeCreateRequest; +import com.alipay.api.response.AlipayTradeCreateResponse; import com.ruoyi.app.domain.*; import com.ruoyi.app.domain.dto.*; import com.ruoyi.app.domain.vo.AppDynamicCommentVo; @@ -7,6 +10,7 @@ import com.ruoyi.app.mapper.AppExchangeCodeMapper; import com.ruoyi.app.mapper.AppOrderMapper; import com.ruoyi.app.mapper.AppOrderPayMapper; import com.ruoyi.app.mapper.AppUserMapper; +import com.ruoyi.app.service.AlipayService; import com.ruoyi.app.service.IAppDynamicCommentService; import com.ruoyi.app.service.IPayService; import com.ruoyi.app.utils.ExcelUtils; @@ -22,12 +26,12 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -64,6 +68,9 @@ public class PayController extends BaseController @Autowired private AppExchangeCodeMapper appExchangeCodeMapper; + @Autowired + private AlipayService alipayService; + @RequestMapping("/generateCode") @ApiOperation(value = "生成兑换码", notes = "生成兑换码", httpMethod = "GET") public String generateCode(Integer num,HttpServletResponse response){ @@ -181,7 +188,7 @@ public class PayController extends BaseController // 生成订单信息 AppOrder order = new AppOrder(); order.setOutTradeNo(code); - order.setPrice(0); + order.setPrice("0"); order.setUserId(userId); order.setPayStatus(2); order.setPaySoure(3); @@ -197,7 +204,7 @@ public class PayController extends BaseController @PostMapping("/wechatPrePay") @ApiOperation(value = "微信支付", notes = "微信支付", httpMethod = "POST") public AjaxResult wechatPrePay(@RequestBody AppOrderArg appOrderArg) { - Integer price = appOrderArg.getPrice(); + Integer price = Integer.valueOf(appOrderArg.getPrice()); PayConfig payConfig = getPayConfigByAppid(); String orderNo = KeyUtil.generateUniqueKey(); @@ -234,11 +241,11 @@ public class PayController extends BaseController AppOrder order = new AppOrder(); order.setOutTradeNo(orderNo); - order.setPrice(price); + order.setPrice(appOrderArg.getPrice()); order.setAppId(payConfig.getAPPID()); order.setUserId(appOrderArg.getUserId()); order.setPayStatus(1); - order.setPaySoure(appOrderArg.getPaySoure()); + order.setPaySoure(1); order.setMchId(payConfig.MCH_ID); order.setCreateTime(new Date()); order.setLevel(appOrderArg.getLevel()); @@ -365,6 +372,33 @@ public class PayController extends BaseController return null; } + @PostMapping("/aliPay") + @ApiOperation(value = "支付宝支付", notes = "支付宝支付", httpMethod = "POST") + public AjaxResult aliPay(@RequestBody AppOrderArg appOrderArg) { + String orderNo = KeyUtil.generateUniqueKey(); + AlipayTradeCreateResponse result = null; + try { + result = alipayService.startPay(orderNo, appOrderArg.getPrice()); + } catch (AlipayApiException e) { + e.printStackTrace(); + } + if (result.isSuccess()) { + AppOrder order = new AppOrder(); + order.setOutTradeNo(orderNo); + order.setPrice(appOrderArg.getPrice()); + order.setAppId(AlipayService.APP_ID); + order.setUserId(appOrderArg.getUserId()); + order.setPayStatus(1); + order.setPaySoure(2); + order.setCreateTime(new Date()); + order.setLevel(appOrderArg.getLevel()); + appOrderMapper.insertAppOrder(order); + return AjaxResult.success(result.getBody()); + } else { + return AjaxResult.error(result.getMsg()); + } + } + public PayConfig getPayConfigByAppid() { PayConfig payConfig = new PayConfig(); payConfig.setAPPID(payConfig.getAPPID()); diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java index ee7278b..68fea04 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrder.java @@ -48,7 +48,7 @@ public class AppOrder extends BaseEntity /** 支付金额 */ @Excel(name = "支付金额") - private int price; + private String price; /** 商户id */ @Excel(name = "商户id") @@ -125,15 +125,6 @@ public class AppOrder extends BaseEntity { return tradeNo; } - public void setPrice(int price) - { - this.price = price; - } - - public int getPrice() - { - return price; - } public void setMchId(String mchId) { this.mchId = mchId; diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrderArg.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrderArg.java index 74eeab2..d5432f6 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrderArg.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/AppOrderArg.java @@ -30,7 +30,7 @@ public class AppOrderArg extends BaseEntity /** 支付金额 */ @Excel(name = "支付金额") - private int price; + private String price; @Excel(name = "会员等级,1-7天,2-一个月,3-一年") private int level; diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/AlipayConfig.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/AlipayConfig.java deleted file mode 100644 index a8d70cd..0000000 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/AlipayConfig.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ruoyi.app.domain.dto; - -import lombok.Data; -import lombok.ToString; - -/** - * @author heisenbergluck@outlook.com - * @date 2021/6/7 0007 16:27 - */ - -@Data -@ToString -public class AlipayConfig { - - private String serverUrl; - - private String appId; - - private String privateKey; - - private String format; - - private String alipayPublicKey; - - private String charset; - - private String signType; -} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java index 9f0e6ef..441d470 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/domain/dto/PayConfig.java @@ -24,14 +24,4 @@ public class PayConfig { public String APP_KEY = "Zzvi53pvCLUdFtvQ3EB0QLHQeKTctZ1c"; public String payUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder";//下单 - - - // 支付宝私钥 - public String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQChzpB6JWlP/2ZWtxcjvphN/ePSCkWYe1hSRwOyy+3jTvA31aVuPOOgC0WludwqLnWJnn6JV5m+Q7ZyJ4sOWmU4f+dDs2F31zrb21QLmF9ZcNpveVTsPQFYCZER2VU8ckLkIqS4RSKySJFGzbmuYyu+nIOct6dUoEhpEa+8o6k9cykplmoXI2wCn24c87qGLkKsvZQrT2nWI46ua57AvBAbkEGkFIbS4FxggP6Z1rUbj3tAREpEO7VQFvfe/DISIzer91U+yEnlmcz9nPhxmaIc0o8xbTW2surSMfoIzXkV8xit9EclGXkb4fZPr8t4N/viEVigQPGw9vxoDrKLhUphAgMBAAECggEAPnd1tYI97wFlq/KRP150hB+RVWRby+tKhLEfz2YFV+0Atj2H2VAufHn9kGZ5hdtbyx5iMXmdRCP2CooTmB3z1+UhDjTxWwe/lGNPRg60ON5lpgWMcIt4ulkvJVnnGyfthQ+O0gj2xSdY1qHTnmxw1eysrtMECZq7eby3QLdaPftYm/g57mHAjruUZBvylEBCnEpY94y7qyYUtgdefDB9n0NIVpqkUjIqOZutZsCjxkFEQlKerPJPllCzuzPQS3YHxTBLdu89F2JGHeMwO17f7XzA7OS3Jf6OvbyQ1OuoAF+NWnojzrehwhh4fqcg5I3rm/opZzgFvb4KxK6mc4sVwQKBgQD2C32Iv1RgCKVAURwKWogIZSkScs8Am2WIP/iCK4sX1+rRbCFlc6TaTqO3hSyR1CeSWwpdB/6TqfMCklCj0pLCiATzbWfSCQoDq6LxfHvs2o/ilu8T/qV5qI5CnugIzSni/3NfBEz2vwjHS8PAGyHrvedTay9SjEeFaDIzTm7eOQKBgQCoWot6zzJEKGXn5y2s828yQBU82OnE+OAf8sjT4MY5lF65+JmbARaIMY40OejA/fUngC/4bi6oNExEv5Y94w+E8VryZOm4lMzDevuImJWQoJsFoHS4rMtAaQly8GRpk18flVB9B1ZLM345sujcnFjPnmJInvDuI2cQaf8rsN1NaQKBgBWTbl+2f3yoZW1db3sM807hKBfhD3v7JI0tJuqrTNg7a/EPbWJLINKwALVQLVdgZlP0PdVopQ9n4NKB6CZlic8bRGvgVTFa75Dg1Tod83QSunlhSPfU5cfkWw1GiAx1iU3JnuFfLCybFfb8Et9ewbu9fHKZPJ4dhQwS1gwfvaMpAoGARE1/+1JmxWpSdfS//kRBn/SJ6UbkCSsj2zJoMjYmliPRDsiCoXWei6D3Xc8E1I/0T5NdYwBo44tcSiQks3UUzc4SJPe2L1IHhWO2+2NUgvn2CyFfWbGZQMecsso/IupMlIbCwgchBp+cnZItkZvJGGrc2zPI8gThArLOeQ5nqskCgYAxkVuRjkrY3Ide2bl17MD/qUZGUrXgfZJxOFI0ya+QinnGrPAxQaWZqyatp663DHOnMjD68Me8t/czhgMLm5g7VcxxPp60Qsx/9F/7l80LacFhMCrhCFW6GNSN1oFyAxokBBe+NgqDJIMJMk3zD4C5SvT1yc19TxoxEwa8lqgLLw=="; - // 支付宝公钥 - public String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyCpeqEUH58ZlTyGvHMD5/L46XVMJAWz5hRdp7oc5KRVt+7IhrNsqLwqRIp5jDXP8HjdnBOkuGb8FvnKSXwN4ydbR0PXXKIm1HSclJH2A3qjeYDuO1QJiE6UU/eB69sdTEfbnMqAaCPsFAbnCgvRZ+zowpVPqfZOs83812O8j+8UC8rEDyCtot26wLiz71Ccs5WzxQBVK02m258L5R43yb4NP9pXF8KZFg9vNpqTVHtX3p/PuMng6NSCbw2praghj8VFT849VPT0uGYRAEbx9uY3R+Y/GJtDlk4oYtMcA+56puudqGvPP96JhHYI5fr5M6IKewZTthG15P2li9dUCwwIDAQAB"; - // alipay appid - public String aliPay = "9021000136647545"; - // 支付宝网关地址 - public String gateway = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"; } diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java new file mode 100644 index 0000000..e03bc71 --- /dev/null +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/AlipayService.java @@ -0,0 +1,56 @@ +package com.ruoyi.app.service; + +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.request.AlipayTradeCreateRequest; +import com.alipay.api.request.AlipayTradePagePayRequest; +import com.alipay.api.response.AlipayTradeCreateResponse; + +public class AlipayService { + + // 支付宝网关 + private static final String ALIPAY_GATEWAY = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"; + // 应用ID + public static final String APP_ID = "9021000136647545"; + // 私钥pkcs8格式 + private static final String APP_PRIVATE_KEY = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQChzpB6JWlP/2ZWtxcjvphN/ePSCkWYe1hSRwOyy+3jTvA31aVuPOOgC0WludwqLnWJnn6JV5m+Q7ZyJ4sOWmU4f+dDs2F31zrb21QLmF9ZcNpveVTsPQFYCZER2VU8ckLkIqS4RSKySJFGzbmuYyu+nIOct6dUoEhpEa+8o6k9cykplmoXI2wCn24c87qGLkKsvZQrT2nWI46ua57AvBAbkEGkFIbS4FxggP6Z1rUbj3tAREpEO7VQFvfe/DISIzer91U+yEnlmcz9nPhxmaIc0o8xbTW2surSMfoIzXkV8xit9EclGXkb4fZPr8t4N/viEVigQPGw9vxoDrKLhUphAgMBAAECggEAPnd1tYI97wFlq/KRP150hB+RVWRby+tKhLEfz2YFV+0Atj2H2VAufHn9kGZ5hdtbyx5iMXmdRCP2CooTmB3z1+UhDjTxWwe/lGNPRg60ON5lpgWMcIt4ulkvJVnnGyfthQ+O0gj2xSdY1qHTnmxw1eysrtMECZq7eby3QLdaPftYm/g57mHAjruUZBvylEBCnEpY94y7qyYUtgdefDB9n0NIVpqkUjIqOZutZsCjxkFEQlKerPJPllCzuzPQS3YHxTBLdu89F2JGHeMwO17f7XzA7OS3Jf6OvbyQ1OuoAF+NWnojzrehwhh4fqcg5I3rm/opZzgFvb4KxK6mc4sVwQKBgQD2C32Iv1RgCKVAURwKWogIZSkScs8Am2WIP/iCK4sX1+rRbCFlc6TaTqO3hSyR1CeSWwpdB/6TqfMCklCj0pLCiATzbWfSCQoDq6LxfHvs2o/ilu8T/qV5qI5CnugIzSni/3NfBEz2vwjHS8PAGyHrvedTay9SjEeFaDIzTm7eOQKBgQCoWot6zzJEKGXn5y2s828yQBU82OnE+OAf8sjT4MY5lF65+JmbARaIMY40OejA/fUngC/4bi6oNExEv5Y94w+E8VryZOm4lMzDevuImJWQoJsFoHS4rMtAaQly8GRpk18flVB9B1ZLM345sujcnFjPnmJInvDuI2cQaf8rsN1NaQKBgBWTbl+2f3yoZW1db3sM807hKBfhD3v7JI0tJuqrTNg7a/EPbWJLINKwALVQLVdgZlP0PdVopQ9n4NKB6CZlic8bRGvgVTFa75Dg1Tod83QSunlhSPfU5cfkWw1GiAx1iU3JnuFfLCybFfb8Et9ewbu9fHKZPJ4dhQwS1gwfvaMpAoGARE1/+1JmxWpSdfS//kRBn/SJ6UbkCSsj2zJoMjYmliPRDsiCoXWei6D3Xc8E1I/0T5NdYwBo44tcSiQks3UUzc4SJPe2L1IHhWO2+2NUgvn2CyFfWbGZQMecsso/IupMlIbCwgchBp+cnZItkZvJGGrc2zPI8gThArLOeQ5nqskCgYAxkVuRjkrY3Ide2bl17MD/qUZGUrXgfZJxOFI0ya+QinnGrPAxQaWZqyatp663DHOnMjD68Me8t/czhgMLm5g7VcxxPp60Qsx/9F/7l80LacFhMCrhCFW6GNSN1oFyAxokBBe+NgqDJIMJMk3zD4C5SvT1yc19TxoxEwa8lqgLLw=="; + // 支付宝公钥 + private static final String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyCpeqEUH58ZlTyGvHMD5/L46XVMJAWz5hRdp7oc5KRVt+7IhrNsqLwqRIp5jDXP8HjdnBOkuGb8FvnKSXwN4ydbR0PXXKIm1HSclJH2A3qjeYDuO1QJiE6UU/eB69sdTEfbnMqAaCPsFAbnCgvRZ+zowpVPqfZOs83812O8j+8UC8rEDyCtot26wLiz71Ccs5WzxQBVK02m258L5R43yb4NP9pXF8KZFg9vNpqTVHtX3p/PuMng6NSCbw2praghj8VFT849VPT0uGYRAEbx9uY3R+Y/GJtDlk4oYtMcA+56puudqGvPP96JhHYI5fr5M6IKewZTthG15P2li9dUCwwIDAQAB"; + // 格式化 + private static final String FORMAT = "json"; + // 字符编码 + private static final String CHARSET = "UTF-8"; + // 签名类型 + private static final String SIGN_TYPE = "RSA2"; + + private static final String NOTIFY_URL = "http://139.224.213.131:7008/pay/test"; + + private static final String SUBJECT = "订单充值"; + + public AlipayTradeCreateResponse startPay(String outTradeNo, String totalAmount) throws AlipayApiException { + // 创建客户端 + AlipayClient alipayClient = new DefaultAlipayClient( + ALIPAY_GATEWAY, + APP_ID, + APP_PRIVATE_KEY, + FORMAT, + CHARSET, + ALIPAY_PUBLIC_KEY, + SIGN_TYPE); + + // 创建API请求 + AlipayTradeCreateRequest alipayRequest = new AlipayTradeCreateRequest(); + alipayRequest.setNotifyUrl(NOTIFY_URL); + + // 设置请求参数 + alipayRequest.setBizContent("{" + + "\"out_trade_no\":\"" + outTradeNo + "\"," + + "\"total_amount\":\"" + totalAmount + "\"," + + "\"subject\":\"" + SUBJECT + "\"," + + "}"); + + // 发起支付请求并获取支付结果 + return alipayClient.sdkExecute(alipayRequest); + } +} \ No newline at end of file