xuhy
2024-12-13 2536f425d95d2e21aa1d61e942b52f10947c9300
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
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;
    }
}