|
|
@ -3,6 +3,7 @@ package com.zscat.mallplus.oms.controller; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.alipay.api.AlipayApiException; |
|
|
|
import com.alipay.api.AlipayClient; |
|
|
|
import com.alipay.api.CertAlipayRequest; |
|
|
|
import com.alipay.api.DefaultAlipayClient; |
|
|
|
import com.alipay.api.domain.AlipayTradeQueryModel; |
|
|
|
import com.alipay.api.domain.AlipayTradeRefundModel; |
|
|
@ -25,6 +26,7 @@ import io.swagger.annotations.Api; |
|
|
|
import io.swagger.annotations.ApiOperation; |
|
|
|
import io.swagger.annotations.ApiParam; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.nutz.lang.random.R; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
@ -182,7 +184,7 @@ public class OmsOrderReturnApplyController { |
|
|
|
//退货成功后,退款
|
|
|
|
//根据订单号
|
|
|
|
//根据orderId查询订单号
|
|
|
|
if(status == 1){ |
|
|
|
if (status == 1) { |
|
|
|
OmsOrder omsOrder = IOmsOrderService.getById(orderId); |
|
|
|
String str = queryPayment(omsOrder.getOrderSn()); |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(str); |
|
|
@ -234,6 +236,55 @@ public class OmsOrderReturnApplyController { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 调式支付宝公钥证书退款 |
|
|
|
* @param args |
|
|
|
*/ |
|
|
|
public static void main(String[] args) { |
|
|
|
CertAlipayRequest certAlipayRequest = new CertAlipayRequest(); |
|
|
|
certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");//设置网关地址
|
|
|
|
certAlipayRequest.setAppId("2018082761134635");//设置应用Id
|
|
|
|
certAlipayRequest.setPrivateKey("MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw=="); //设置应用私钥
|
|
|
|
certAlipayRequest.setFormat("json"); //设置请求格式,固定值json
|
|
|
|
certAlipayRequest.setCharset("UTF8");//设置字符集
|
|
|
|
certAlipayRequest.setSignType("RSA2"); //设置签名类型
|
|
|
|
certAlipayRequest.setCertPath("D:\\apliay\\appCertPublicKey_2018082761134635.crt");//设置应用公钥证书路径 ,一定是本地的绝对路径
|
|
|
|
certAlipayRequest.setAlipayPublicCertPath("D:\\apliay\\alipayCertPublicKey_RSA2.crt"); //设置支付宝公钥证书路径,一定是本地的绝对路径
|
|
|
|
certAlipayRequest.setRootCertPath("D:\\apliay\\alipayRootCert.crt"); |
|
|
|
// AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", "2018082761134635", "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw==", "json", "utf-8", "D:\\apliay\\alipayCertPublicKey_RSA2.crt", "RSA2");
|
|
|
|
AlipayClient alipayClient = null; |
|
|
|
AlipayTradeQueryRequest alipay_request = new AlipayTradeQueryRequest(); |
|
|
|
AlipayTradeRefundModel model = new AlipayTradeRefundModel(); |
|
|
|
model.setOutTradeNo("16801672192750100382"); |
|
|
|
// model.setRefundAmount("2");
|
|
|
|
alipay_request.setBizModel(model); |
|
|
|
try { |
|
|
|
alipayClient = new DefaultAlipayClient(certAlipayRequest); |
|
|
|
//查询订单
|
|
|
|
AlipayTradeQueryResponse alipay_response = alipayClient.certificateExecute(alipay_request); |
|
|
|
String queryPaymentStr = alipay_response.getBody(); |
|
|
|
JSONObject jsonObject = JSONObject.parseObject(queryPaymentStr); |
|
|
|
String alipayTradeQueryResponse = jsonObject.getString("alipay_trade_query_response"); |
|
|
|
JSONObject jsonObject2 = JSONObject.parseObject(alipayTradeQueryResponse); |
|
|
|
String out_trade_no = jsonObject2.getString("out_trade_no"); |
|
|
|
String trade_no = jsonObject2.getString("trade_no"); |
|
|
|
String refund_amount = jsonObject2.getString("total_amount"); |
|
|
|
AlipayTradeRefundRequest alipayTradeRefundRequest = new AlipayTradeRefundRequest(); |
|
|
|
model.setOutTradeNo(out_trade_no); |
|
|
|
model.setRefundAmount(refund_amount); |
|
|
|
model.setTradeNo(trade_no); |
|
|
|
alipayTradeRefundRequest.setBizModel(model); |
|
|
|
//公钥证书,一定要使用这个构造方法
|
|
|
|
AlipayTradeRefundResponse alipay_response1 = alipayClient.certificateExecute(alipayTradeRefundRequest); |
|
|
|
queryPaymentStr = alipay_response1.getBody(); |
|
|
|
|
|
|
|
System.out.println(queryPaymentStr); |
|
|
|
} catch (AlipayApiException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 支付宝订单退款 |
|
|
|
* |
|
|
@ -244,7 +295,7 @@ public class OmsOrderReturnApplyController { |
|
|
|
*/ |
|
|
|
public String alipayRefund(String out_trade_no, String trade_no, String refund_amount) { |
|
|
|
// AlipayClient alipayClient = new DefaultAlipayClient(InterfaceUrl.serverUrl, InterfaceUrl.appId, InterfaceUrl.privateKey, "json", "utf-8", InterfaceUrl.publicKey, "RSA2");
|
|
|
|
AlipayClient alipayClient = new DefaultAlipayClient(GATE, APPID, APP_PRIVATE_KEY, "json", "utf-8", ALIPAY_PUBLIC_KEY, "RSA2"); |
|
|
|
AlipayClient alipayClient = new DefaultAlipayClient(GATE, APPID, APP_PRIVATE_KEY, "json", "utf-8", ALIPAY_PUBLIC_KEY, "RSA2"); |
|
|
|
//订单编号 支付宝交易号不为空
|
|
|
|
if (out_trade_no != null && trade_no != null) { |
|
|
|
AlipayTradeRefundRequest alipay_request = new AlipayTradeRefundRequest(); |
|
|
@ -268,13 +319,4 @@ public class OmsOrderReturnApplyController { |
|
|
|
|
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void main(String[] args) { |
|
|
|
String out_trade_no = ""; |
|
|
|
String trade_no =""; |
|
|
|
String refund_amount =""; |
|
|
|
String returnRe = alipayRefund(out_trade_no,trade_no,refund_amount); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|