package com.ruoyi.web.controller.tool; import com.alipay.api.*; import com.alipay.api.domain.*; import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.request.AlipayTradeQueryRequest; import com.alipay.api.request.AlipayTradeRefundRequest; import com.alipay.api.response.AlipayTradePagePayResponse; import com.alipay.api.request.AlipayTradePagePayRequest; import com.alipay.api.response.AlipayTradeQueryResponse; import com.alipay.api.response.AlipayTradeRefundResponse; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Base64; import java.util.ArrayList; import java.util.List; public class AlipayTradePagePay { public static String pay(String title,String code,String money) throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); AlipayTradePagePayModel model = new AlipayTradePagePayModel(); // 设置订单标题 model.setSubject(title); // 设置产品码 model.setProductCode("FAST_INSTANT_TRADE_PAY"); // 设置PC扫码支付的方式 model.setQrPayMode("3"); // 设置商户订单号 model.setOutTradeNo(code); // 设置订单总金额 model.setTotalAmount(money); request.setBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "POST"); // 如果需要返回GET请求,请使用 // AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "GET"); String pageRedirectionData = response.getBody(); System.out.println(pageRedirectionData); if (response.isSuccess()) { System.out.println("调用成功"); } else { System.out.println("调用失败"); // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); // System.out.println(diagnosisUrl); } return pageRedirectionData; } public static void refund(String money,String outNo) throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); AlipayTradeRefundModel model = new AlipayTradeRefundModel(); // 设置商户订单号 model.setOutTradeNo(outNo); // 设置退款金额 model.setRefundAmount(money); // 设置退款原因说明 model.setRefundReason("正常退款"); request.setBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayTradeRefundResponse response = alipayClient.execute(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); } } public static void main(String[] args) throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); AlipayTradeQueryModel model = new AlipayTradeQueryModel(); // 设置订单支付时传入的商户订单号 model.setOutTradeNo("KC202410241014151729736055081"); request.setBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayTradeQueryResponse response = alipayClient.execute(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); } } private static AlipayConfig getAlipayConfig() throws AlipayApiException { String privateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCMfMyRu0w45qXmyw2KdUCX+gE+mT9lPFahJwkWHVQMh7M0tiU3H7sFFG40+VLK8sBfBhtzkogasJ6en/WYEzIC0iRw0s1jj12Ja06Xy67+h4dlB97489Hc1YOcQ+14ZatGkZUhtjJ51pw77cEjKZ+/9Xx2P2mWUI7FPpGwSJmBI4gBO7Mu3qcQ5e0RqIdqXKOvnk4pA98SUeYHfWN/XIzqI1UAzyuY/wZuIzKvTdgWtC41oidf0ngZua7HLr8cJrndPIu1YALs7L4RgPSjL/5HDAQ991QwAs4ByRGEStx2HZ/o6CddZ8x831GGEtCI3q1tn+7OJrcCzt803iVTys+ZAgMBAAECggEAOfj14d1MYt6q70YzXENuWEiOYuqSQpBXn0Cge0O2/0SwKrxPNyQc5Me9gpawF5d80rmOcm6xQ3JGwmZ3zj19kbRt3TDgGIl8q8xgLjubBuWedY598HWM0Hg7SyysvdYWi5Rf2f15btWkuwYtgPkYNvpyVcltJN4xTCu5qukKj0Mhgxtp7/rnAFYtJSf/2GlL1jEhiE2nmcVLX7qBUG4k4jwcQal7Y+dNhoU7ZT4d5kYnZQ3tT/nHXDJSlj/uZAjKMAw5EGSKw4gnfCg2vqo9uF/ni0JxbwV1oC4mfGK3JQv4ZcszIlo25laRPRNsIxlPRF9uhVKEBq3L7O5i+ZzBUQKBgQDIxpYOuxL7VUIIa1WRKDl4YuxcM6QgX6V5L9UnidCwo72IhT6CkPQVu8uHx55qPI8UpVhbYYrxYH5xCYoZ0+fK6LRK9wMJUjL6Gg/HjXTbGyzcIoIaJ0JA4hHPD2onrWbNWwjylTzu1w4opWArexD6rX8WavS3mfZC04fw6oRZ5wKBgQCzIRR2CVnvtNnzAa36YbSQviCMlRfNxfnPDXHGjWMReHuMDxFQHPTGsB7HA8QmIjM1GTFaHhgNAl6BGIgDo+KPwbIVFJCXiQ2k4Il+znYRxFXmTqGsOARl19oIFXLUI0sy3TOFYVDBjBfk4ICTpn8IKACOvAPUFOJHid4P/GFafwKBgQC6pMHCl+4hbzSflwhIlNg4Ld4EKI2e+stdSTYiN1+lldIQI63kutPtkFK4ur1tjTaFvt/Qs3Dyyv1AH9oeAHwuiP1x4wcTlzKEhc29eKb1OOIPEpVXsr9IieB8WJwannw+0y4SNOIcNheXeYVZZmJ2ZusJ8Avm0l236eUp9RlsaQKBgHPFvIixcIwpkfeqLTy3K1GlYDocHl9jRhpZMSDHvrDK8ubJ0kG6BUXpDGtJ9ttCnWADIU+CRb8aueOr7DSWFlcdNDDFstINxWC7soHfhJXlFDOevIUnS0hbYtJ4sleDXBXKu4LIK758AfFuXAuRv2aRHBMkV0EaIklkRL6GOpGXAoGBAKbNBXmOqTxl6bKD9Jlpcn6Kq06feK7dzRoGdG3x1eY6DrJu40Wsi71QYSz5MLTxcJLNIfnuMoQPPQrPcX98GCy0OnVH7KLMoztEs15TlHPJF1BQAJlHhmzwHB5UNpC2fP6x9WaAow0YD7/BL59QLH989+baFdw4ZmQk2iEF5u2b"; String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjHzMkbtMOOal5ssNinVAl/oBPpk/ZTxWoScJFh1UDIezNLYlNx+7BRRuNPlSyvLAXwYbc5KIGrCenp/1mBMyAtIkcNLNY49diWtOl8uu/oeHZQfe+PPR3NWDnEPteGWrRpGVIbYyedacO+3BIymfv/V8dj9pllCOxT6RsEiZgSOIATuzLt6nEOXtEaiHalyjr55OKQPfElHmB31jf1yM6iNVAM8rmP8GbiMyr03YFrQuNaInX9J4Gbmuxy6/HCa53TyLtWAC7Oy+EYD0oy/+RwwEPfdUMALOAckRhErcdh2f6OgnXWfMfN9RhhLQiN6tbZ/uzia3As7fNN4lU8rPmQIDAQAB"; AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); alipayConfig.setAppId("2021004184657725"); alipayConfig.setPrivateKey(privateKey); alipayConfig.setFormat("json"); alipayConfig.setAlipayPublicKey(alipayPublicKey); alipayConfig.setCharset("UTF-8"); alipayConfig.setSignType("RSA2"); return alipayConfig; // // AlipayConfig alipayConfig = new AlipayConfig(); ////设置网关地址 // alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); ////设置应用APPID // alipayConfig.setAppId("2021004184657725"); ////设置应用私钥 // alipayConfig.setPrivateKey("MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCgySquVPl9gQCBvyQHLkdXIDhBDLJ0bhzr4SPxWGjw4M+HpAl0tlBypksxCcOWqMi9b2DOVI8sUB6wIRDYRajOpPMiMTb93DZNSSXOn4lh+kX1y5LOaT1MQ92GyGRdjWLG4NOF+Zrdy1+zaoYmE64IUE/xBOV4C5uVMyHnFqcH2aqGXKUE4wW1rrX2FoMgkqunFh6kUVPKWlLzXH3dTvI5kSZPHW/G5e+XQ4eoRDv8hj0Sn3BhL71nHEsvR6lvfV97Ra498kWQGChl/ypHJaxBqJVn/4TFJEG/Dzsr4sF5UuO1UInEobZ+u20rEyse3E51Ww+mfGFD+5a1dXco/ER5AgMBAAECggEAa/3xrtngIM2ue3bYSgJpZDl9zyMqEU2MG1pCe+23vmIgwagJudxiOD89LZizR9Ph0GqoiKz+5PKDSiVLXRecg/8CVqrblrJ7vnks7ZT1/1rL9oVe+0hwJXNHrSmXT8aQ26dSKyA1Rlc81hLsO1Lohyj6KJXzUifpvdJ0KPRsB7azThYw/FZ+Raphgm91UD5fLb0RjDHPD239pLLDn8QjFYu4JWRw/NOpI8/svnnONV9P4mPjhBalG48f4Qg0ToiZXjqZb2N3pox5zLjcYx+MYhfA/1P9rG3DWMnnCQVM1x83u80tNAi6PKC4SNSxldRANQJ8QSviOTrhhVNmd3QJoQKBgQD2K8DsvNbL+L/rxMiMVd6KHOkyxr/W81TgLqOTJrT0blMWbStDEH4D4J8pA9+oaf9+kV5hcC3M8lI+CstVb2zrIfjksF96Imt0xfrpb2le/0dfeQv7c8Jg7JMsrHluNwPYdOFDR1o4Z+7hQr0MuqSQIgGA1y+HmzLPBROEynX6vQKBgQCnNKVJUxDf5/06vDoQVigi6WD0I82+Y3GL1J7QS3nQPBlmqNfQsvuDrvWCL564B9V4n7ryTfdn3XXyS73pNMj6lZkvhwIIhHvD9eOP4StOGU7HpdpBTd90TsjHm/0DNTYT2miXzIOgWQ8HB90uuB4SggALmHrJdi4uFLAuoKuqbQKBgQClikC/MjHjklBFVNxj+q6fA9gRzDNfcdymsNZQ8xuGr9Xx49HO1H1ZUCjXpQI3N6iXTVxBe/Vgt6d0jz+zIS4GZJ8B8lUSRakrKqOTbNdYCaTOYBEds/eHxC8oQIecBSTx349H9eiGu+WY149Xyv806ZlHMe2FbGlba5d3mcqCpQKBgBYEkrdjHte9PtVbL/IyxjpCrSe5B0DI64zURM19At9u6pFgLnsm9oPSqDWqe6YUMgIeVonNxoSA3yU24B0zfDuzM2bUymnAuGOHn520svUn0/3qUyFCVeiE71+JpPmlKifXHOrQXYzh7V6ppHCggiVBxSvBunmI/G/I/aJGOhTJAoGBAKpb7Ld1ZLBCq5lvebRUwcbzSDkvq5YmJ9JKkZJo5tH29vSuy8wrCdOG5Dtu7naJTovHRM/qvrcNQoexHPBB2KPqrYPyIrsBHcqQ5WEQ/1aBUh/lNge6bmO4sr2wSrdXTkSCeMtFs4n6KYnvL0pF7Bu8RTGlAXN7MO/oDXo8Vflq"); ////设置应用公钥证书路径 // alipayConfig.setAppCertPath("C:\\Users\\Admin\\Desktop\\2021004184657725\\appCertPublicKey_2021004184657725.crt"); ////设置支付宝公钥证书路径 // alipayConfig.setAlipayPublicCertPath("C:\\Users\\Admin\\Desktop\\2021004184657725\\alipayCertPublicKey_RSA2.crt"); ////设置支付宝根证书路径 // alipayConfig.setRootCertPath("C:\\Users\\Admin\\Desktop\\2021004184657725\\alipayRootCert.crt"); ////设置请求格式,固定值json // alipayConfig.setFormat("json"); ////设置字符集 // alipayConfig.setCharset("utf-8"); ////设置签名类型 // alipayConfig.setSignType("RSA2"); // // String publicKey = AlipaySignature.getAlipayPublicKey("C:\\Users\\Admin\\Desktop\\2021004184657725\\appCertPublicKey_2021004184657725.crt"); // System.out.println("publicKey:"+publicKey); // return alipayConfig; } }