提交 7372253c 作者: xiaowang

退款申请

上级 9c4ea9a0
...@@ -43,4 +43,12 @@ public class UserSystemConstant { ...@@ -43,4 +43,12 @@ public class UserSystemConstant {
@Value("${data.file.url}") @Value("${data.file.url}")
private String privateKeyFromPath; private String privateKeyFromPath;
@Value("${data.key.certificate}")
private String certificate;
@Value("${wx.pay.refund-notify-url}")
private String refundNotifyUrl;
} }
package com.mmc.payment.controller; package com.mmc.payment.controller;
import com.mmc.payment.common.result.ResultBody; import com.mmc.payment.common.result.ResultBody;
import com.mmc.payment.model.vo.order.ApplyRefundVO;
import com.mmc.payment.model.vo.order.OrderRequestParamsVO; import com.mmc.payment.model.vo.order.OrderRequestParamsVO;
import com.mmc.payment.service.WechatPayService; import com.mmc.payment.service.WechatPayService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -47,10 +48,32 @@ public class WechatPayController extends BaseController { ...@@ -47,10 +48,32 @@ public class WechatPayController extends BaseController {
return wechatPayService.closeOrder(orderNo); return wechatPayService.closeOrder(orderNo);
} }
@ApiOperation(value = "查询订单") @ApiOperation(value = "根据交易号或订单编号查询订单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("queryOrder") @GetMapping("queryOrder")
public ResultBody queryOrder(String orderNo) { public ResultBody queryOrder(@RequestParam(required = false) String transactionId,
return wechatPayService.queryOrder(orderNo); @RequestParam(required = false) String orderNo) {
return wechatPayService.queryOrder(transactionId, orderNo);
}
@ApiOperation(value = "申请退款")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("applyRefund")
public ResultBody applyRefund(@RequestBody ApplyRefundVO applyRefundVO) {
return wechatPayService.applyRefund(applyRefundVO);
}
@ApiOperation(value = "退款异步通知")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("refundCallback")
public Map refundCallback(HttpServletRequest request) {
return wechatPayService.refundCallback(request);
}
@ApiOperation(value = "查询退款")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("queryRefund")
public ResultBody queryRefund(String outRefundNo) {
return wechatPayService.queryRefund(outRefundNo);
} }
} }
package com.mmc.payment.dao; package com.mmc.payment.dao;
import com.mmc.payment.entity.order.ApplyRefundLogDO;
import com.mmc.payment.entity.order.WxPayLogDO; import com.mmc.payment.entity.order.WxPayLogDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -17,4 +18,8 @@ public interface WechatPayDao { ...@@ -17,4 +18,8 @@ public interface WechatPayDao {
void updateWxPayLog(WxPayLogDO wxPayLogDO); void updateWxPayLog(WxPayLogDO wxPayLogDO);
void deleteWxPayLogByOrderNo(String orderNo); void deleteWxPayLogByOrderNo(String orderNo);
void insertApplyRefundLog(ApplyRefundLogDO applyRefundLogDO);
void updateApplyRefundLog(ApplyRefundLogDO applyRefundLogDO);
} }
package com.mmc.payment.entity.order;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author LW
* @date 2023/7/22 16:23
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ApplyRefundLogDO {
private Integer id;
private String orderNo;
private String transactionId;
private String outRefundNo;
private String reason;
private Integer total;
private Long refund;
private String currency;
private String refundId;
private String channel;
private String userReceivedAccount;
private String successTime;
private String createTime;
private String refundStatus;
private String fundsAccount;
private String notifyRefundStatus;
}
package com.mmc.payment.model.vo.order;
import com.wechat.pay.java.service.refund.model.GoodsDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Author LW
* @date 2023/7/22 14:51
* 概要:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ApplyRefundVO {
@ApiModelProperty(value = "商户订单号", required = true)
private String outTradeNo;
@ApiModelProperty(value = "退款原因")
private String reason;
@ApiModelProperty(value = "退款金额", required = true)
private Long refund;
@ApiModelProperty(value = "商品信息(可填可不填)")
private List<GoodsDetail> goodsDetail;
}
package com.mmc.payment.service; package com.mmc.payment.service;
import com.mmc.payment.common.result.ResultBody; import com.mmc.payment.common.result.ResultBody;
import com.mmc.payment.model.vo.order.ApplyRefundVO;
import com.mmc.payment.model.vo.order.OrderRequestParamsVO; import com.mmc.payment.model.vo.order.OrderRequestParamsVO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -19,5 +20,11 @@ public interface WechatPayService { ...@@ -19,5 +20,11 @@ public interface WechatPayService {
ResultBody closeOrder(String orderNo); ResultBody closeOrder(String orderNo);
ResultBody queryOrder(String orderNo); ResultBody queryOrder(String transactionId, String orderNo);
ResultBody applyRefund(ApplyRefundVO applyRefundVO);
Map refundCallback(HttpServletRequest request);
ResultBody queryRefund(String outRefundNo);
} }
...@@ -3,6 +3,7 @@ package com.mmc.payment.util; ...@@ -3,6 +3,7 @@ package com.mmc.payment.util;
import com.mmc.payment.constant.UserSystemConstant; import com.mmc.payment.constant.UserSystemConstant;
import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import com.wechat.pay.java.core.RSAConfig;
import com.wechat.pay.java.core.notification.NotificationConfig; import com.wechat.pay.java.core.notification.NotificationConfig;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -46,4 +47,17 @@ public class WxConfigUtils { ...@@ -46,4 +47,17 @@ public class WxConfigUtils {
return config; return config;
} }
public RSAConfig createRSAConfig() {
// 初始化商户配置
RSAConfig config =
new RSAConfig.Builder()
.merchantId(userSystemConstant.getMchid())
// 使用 com.wechat.pay.java.core.util 中的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
.privateKey(userSystemConstant.getPrivateKeyFromPath())
.merchantSerialNumber(userSystemConstant.getMchNumber())
.wechatPayCertificates(userSystemConstant.getCertificate())
.build();
return config;
}
} }
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpxxR1ZZCLlLn+
XWCX90UrJE6iT9S4Fbf28WMIdqgtsk9IHuIFEy4jfKc/GayxKasFA7r5/csTeZuS
hGPhvtj8mDru6EFg/nKVwW9z26d3a9oYoq5MTNEl5PbrS9wsupULIKDwkd4unIPA
IISBFV/o3UBwAP0TU6jLHG7tgryuIIau5HHNDwkIbuxn/vj0A0HY1ZhvWD1xs1XW
F+TzBybUzPAlEyzGYhhZR+Z/xjtUFWPXxdmC+MD1/qSvMqVpDNpSjTkJZXw7cYHf
GluLlP0Q2ZQI8uOG+uXXhcHUpi61OpmXSyIgST+FGynq28y28aiOUs/6e0i7SnZe
lsODEzqXAgMBAAECggEADvKSIIvioAdmILkD6h1BH71AlxXEOrjey4URHQulXvCV
/lmJuLypkUJGT03pYGe0wOpFKgFoQbyxL8MsMBHndMXKWoJkTy/X0suHDoJGSkNa
nlSkV99jgpyYCLtTFTUQLjyfLs8I6r2o899pCxxgp1XjeHj9zxfMgqVsNskN556c
wWsiICcpZFFEolXXswLDw3WM1n7Ktq7tpCZZksIPCI0s5V0lMcezd284lkV4AkyQ
oXy1viwf2COjT7QqsKR7SAMIRsIsk0RlkPJar3o4FmaD9GA5EUfuC0etSxypbkH7
J8eaCVwv9ns23hUvjR89Fs4HTYxWr0/svi0hMSyY8QKBgQDX71HdH8fwhCPMnjOq
gYrFp/9I3ghoFyswupPQv5cVmEzqrweI4E/tZNJrM70Z1V+0tI8rGc2hmgPTB3HS
A8zFyXj8eU3Up/hXjhVkdi9qzF89ImLA9LT0MFMx38NEHoPUkO6wxTAFuF4Wvhi/
S6dnag3uNjJ5xLlNjrQhLNR4UwKBgQDJR1eA67CfJo9oZBU4lJzruHRVmX3sARpd
lXAgOD7q4DTjL3/bq/+n19sVAh34mTdI0vAVIGlp4oZVohjsByOwPkL8rt0HyhdA
+RYyMD5H+Azp5Qvx4MJhUQxhg2WCjPqthU6bunqCWu2kSZkvkX/t/sX8fqS6NvYj
IOflwwscLQKBgH+PbeHd02Qe+3L2Bfl0u0DWZHVsTLUI8se/gHCxrZPhO5brvNy7
/ht0EuWnU89+ACKlA2pnvNT5QccZP8Db48z3ntQu6K52Z7t5QOPu+UXy41QfCw2H
wZn7LjppQFXuXNxmncqpQhwu9M4kkEP5cjQiL4aIV7sdXoYVhg2PCRjnAoGAf3Pg
ce9MsQp+xrCRS3m3gAAWEloWhYoRQu8syAo1tQ7yDmX2hYh9Y6/ot33WsqN6gW+o
vQgAGB9rxu/U7ih7Lc/PJSgpKBSM8wSHTJKF7Zahvr3d+XTEQVFMELdeYPOajKQc
KbpEdyTS1DQSfy+YHYE1p3QeJRhGdeoRTcla0KUCgYA+HSr6b3q/vU+/LGujNJls
656gtZHTlAobfjqOzA1vbNalHT26/Ikv7cPzAXO1mHsxcxUa9zeS2V+RDzy+RF15
kfWTgY4GaDbhQhFg0KrcbloH+p8oNWpqvyynoJxP1IFQWn+VJW2tN1uSAtlD2dBQ
+Z56YzbOQlvvml7ajzxzSg==
-----END PRIVATE KEY-----
...@@ -43,6 +43,7 @@ wx: ...@@ -43,6 +43,7 @@ wx:
mch-number: 7BF5931E5A177A94E2F3A41C839A616ECBA86718 #商户序列号 mch-number: 7BF5931E5A177A94E2F3A41C839A616ECBA86718 #商户序列号
api-v3-key: MMcaFDcly5Eb5o0nTNZdu3ek8DDh4K1B #apiv3密钥 api-v3-key: MMcaFDcly5Eb5o0nTNZdu3ek8DDh4K1B #apiv3密钥
notify-url: https://test.iuav.shop/payment/wechat/payCallback notify-url: https://test.iuav.shop/payment/wechat/payCallback
refund-notify-url: https://test.iuav.shop/payment/wechat/refundCallback
mmcflying: mmcflying:
download: download:
...@@ -89,4 +90,29 @@ KbpEdyTS1DQSfy+YHYE1p3QeJRhGdeoRTcla0KUCgYA+HSr6b3q/vU+/LGujNJls ...@@ -89,4 +90,29 @@ KbpEdyTS1DQSfy+YHYE1p3QeJRhGdeoRTcla0KUCgYA+HSr6b3q/vU+/LGujNJls
656gtZHTlAobfjqOzA1vbNalHT26/Ikv7cPzAXO1mHsxcxUa9zeS2V+RDzy+RF15 656gtZHTlAobfjqOzA1vbNalHT26/Ikv7cPzAXO1mHsxcxUa9zeS2V+RDzy+RF15
kfWTgY4GaDbhQhFg0KrcbloH+p8oNWpqvyynoJxP1IFQWn+VJW2tN1uSAtlD2dBQ kfWTgY4GaDbhQhFg0KrcbloH+p8oNWpqvyynoJxP1IFQWn+VJW2tN1uSAtlD2dBQ
+Z56YzbOQlvvml7ajzxzSg==" +Z56YzbOQlvvml7ajzxzSg=="
key:
certificate: "MIIEJDCCAwygAwIBAgIUe/WTHloXepTi86Qcg5phbsuoZxgwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjMwNzE4MDI0NTAzWhcNMjgwNzE2MDI0NTAzWjB+MRMwEQYDVQQDDAox
NjQ4NjUzNTMzMRswGQYDVQQKDBLlvq7kv6HllYbmiLfns7vnu58xKjAoBgNVBAsM
IeadreW3nuS6keS6q+mjnuenkeaKgOaciemZkOWFrOWPuDELMAkGA1UEBgwCQ04x
ETAPBgNVBAcMCFNoZW5aaGVuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAqccUdWWQi5S5/l1gl/dFKyROok/UuBW39vFjCHaoLbJPSB7iBRMuI3ynPxms
sSmrBQO6+f3LE3mbkoRj4b7Y/Jg67uhBYP5ylcFvc9und2vaGKKuTEzRJeT260vc
LLqVCyCg8JHeLpyDwCCEgRVf6N1AcAD9E1Ooyxxu7YK8riCGruRxzQ8JCG7sZ/74
9ANB2NWYb1g9cbNV1hfk8wcm1MzwJRMsxmIYWUfmf8Y7VBVj18XZgvjA9f6krzKl
aQzaUo05CWV8O3GB3xpbi5T9ENmUCPLjhvrl14XB1KYutTqZl0siIEk/hRsp6tvM
tvGojlLP+ntIu0p2XpbDgxM6lwIDAQABo4G5MIG2MAkGA1UdEwQCMAAwCwYDVR0P
BAQDAgP4MIGbBgNVHR8EgZMwgZAwgY2ggYqggYeGgYRodHRwOi8vZXZjYS5pdHJ1
cy5jb20uY24vcHVibGljL2l0cnVzY3JsP0NBPTFCRDQyMjBFNTBEQkMwNEIwNkFE
Mzk3NTQ5ODQ2QzAxQzNFOEVCRDImc2c9SEFDQzQ3MUI2NTQyMkUxMkIyN0E5RDMz
QTg3QUQxQ0RGNTkyNkUxNDAzNzEwDQYJKoZIhvcNAQELBQADggEBAJ76xFfSq9t6
SvJGhhMuwtS+LlODpiSHd7C39+cWNEk/VR9nF/j8CSzjZduaQw/BZCeIfgGFbDFW
yAgmoGMNGdkOV3qFQZZxkTDCo4EbTklEvLw+0c9r6T8sIfPujCeZgk1aEIJul8ig
gXkyyzD4xR89PMAxh5srSvmAcIsGMSca3l1mFs4uDLs1uB3knOT0lv57w1aDTXMf
ZAT1f24ANAOVMGjhYRCfnKSDBi8QEE7Nj7l5ESQvnUq5pwDbbB3U/nLAKOb4o4Zx
5je/1HN0fauKhCC6HPY5FpJ3wKUm6dUDims5ZXuAIeaEy1HQ2h/om7e72x/rdDdz
5cl2IgwSfNM="
...@@ -35,6 +35,7 @@ wx: ...@@ -35,6 +35,7 @@ wx:
mch-number: 7BF5931E5A177A94E2F3A41C839A616ECBA86718 #商户序列号 mch-number: 7BF5931E5A177A94E2F3A41C839A616ECBA86718 #商户序列号
api-v3-key: MMcaFDcly5Eb5o0nTNZdu3ek8DDh4K1B #apiv3密钥 api-v3-key: MMcaFDcly5Eb5o0nTNZdu3ek8DDh4K1B #apiv3密钥
notify-url: https://test.iuav.shop/payment/wechat/payCallback notify-url: https://test.iuav.shop/payment/wechat/payCallback
refund-notify-url: https://test.iuav.shop/payment/wechat/refundCallback
aliyun: aliyun:
oss: oss:
...@@ -89,5 +90,28 @@ KbpEdyTS1DQSfy+YHYE1p3QeJRhGdeoRTcla0KUCgYA+HSr6b3q/vU+/LGujNJls ...@@ -89,5 +90,28 @@ KbpEdyTS1DQSfy+YHYE1p3QeJRhGdeoRTcla0KUCgYA+HSr6b3q/vU+/LGujNJls
656gtZHTlAobfjqOzA1vbNalHT26/Ikv7cPzAXO1mHsxcxUa9zeS2V+RDzy+RF15 656gtZHTlAobfjqOzA1vbNalHT26/Ikv7cPzAXO1mHsxcxUa9zeS2V+RDzy+RF15
kfWTgY4GaDbhQhFg0KrcbloH+p8oNWpqvyynoJxP1IFQWn+VJW2tN1uSAtlD2dBQ kfWTgY4GaDbhQhFg0KrcbloH+p8oNWpqvyynoJxP1IFQWn+VJW2tN1uSAtlD2dBQ
+Z56YzbOQlvvml7ajzxzSg==" +Z56YzbOQlvvml7ajzxzSg=="
key:
certificate: "MIIEJDCCAwygAwIBAgIUe/WTHloXepTi86Qcg5phbsuoZxgwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjMwNzE4MDI0NTAzWhcNMjgwNzE2MDI0NTAzWjB+MRMwEQYDVQQDDAox
NjQ4NjUzNTMzMRswGQYDVQQKDBLlvq7kv6HllYbmiLfns7vnu58xKjAoBgNVBAsM
IeadreW3nuS6keS6q+mjnuenkeaKgOaciemZkOWFrOWPuDELMAkGA1UEBgwCQ04x
ETAPBgNVBAcMCFNoZW5aaGVuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAqccUdWWQi5S5/l1gl/dFKyROok/UuBW39vFjCHaoLbJPSB7iBRMuI3ynPxms
sSmrBQO6+f3LE3mbkoRj4b7Y/Jg67uhBYP5ylcFvc9und2vaGKKuTEzRJeT260vc
LLqVCyCg8JHeLpyDwCCEgRVf6N1AcAD9E1Ooyxxu7YK8riCGruRxzQ8JCG7sZ/74
9ANB2NWYb1g9cbNV1hfk8wcm1MzwJRMsxmIYWUfmf8Y7VBVj18XZgvjA9f6krzKl
aQzaUo05CWV8O3GB3xpbi5T9ENmUCPLjhvrl14XB1KYutTqZl0siIEk/hRsp6tvM
tvGojlLP+ntIu0p2XpbDgxM6lwIDAQABo4G5MIG2MAkGA1UdEwQCMAAwCwYDVR0P
BAQDAgP4MIGbBgNVHR8EgZMwgZAwgY2ggYqggYeGgYRodHRwOi8vZXZjYS5pdHJ1
cy5jb20uY24vcHVibGljL2l0cnVzY3JsP0NBPTFCRDQyMjBFNTBEQkMwNEIwNkFE
Mzk3NTQ5ODQ2QzAxQzNFOEVCRDImc2c9SEFDQzQ3MUI2NTQyMkUxMkIyN0E5RDMz
QTg3QUQxQ0RGNTkyNkUxNDAzNzEwDQYJKoZIhvcNAQELBQADggEBAJ76xFfSq9t6
SvJGhhMuwtS+LlODpiSHd7C39+cWNEk/VR9nF/j8CSzjZduaQw/BZCeIfgGFbDFW
yAgmoGMNGdkOV3qFQZZxkTDCo4EbTklEvLw+0c9r6T8sIfPujCeZgk1aEIJul8ig
gXkyyzD4xR89PMAxh5srSvmAcIsGMSca3l1mFs4uDLs1uB3knOT0lv57w1aDTXMf
ZAT1f24ANAOVMGjhYRCfnKSDBi8QEE7Nj7l5ESQvnUq5pwDbbB3U/nLAKOb4o4Zx
5je/1HN0fauKhCC6HPY5FpJ3wKUm6dUDims5ZXuAIeaEy1HQ2h/om7e72x/rdDdz
5cl2IgwSfNM="
...@@ -43,6 +43,7 @@ wx: ...@@ -43,6 +43,7 @@ wx:
mch-number: 7BF5931E5A177A94E2F3A41C839A616ECBA86718 #商户序列号 mch-number: 7BF5931E5A177A94E2F3A41C839A616ECBA86718 #商户序列号
api-v3-key: MMcaFDcly5Eb5o0nTNZdu3ek8DDh4K1B #apiv3密钥 api-v3-key: MMcaFDcly5Eb5o0nTNZdu3ek8DDh4K1B #apiv3密钥
notify-url: https://www.iuav.shop/payment/wechat/payCallback notify-url: https://www.iuav.shop/payment/wechat/payCallback
refund-notify-url: https://www.iuav.shop/payment/wechat/refundCallback
mmcflying: mmcflying:
download: download:
...@@ -61,3 +62,58 @@ iuav: ...@@ -61,3 +62,58 @@ iuav:
url: http://cms-svc:35150 url: http://cms-svc:35150
pmsapp: pmsapp:
url: http://pms-svc:8099 url: http://pms-svc:8099
data:
file:
# url: classpath:apiclient_key.pem
url: "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpxxR1ZZCLlLn+
XWCX90UrJE6iT9S4Fbf28WMIdqgtsk9IHuIFEy4jfKc/GayxKasFA7r5/csTeZuS
hGPhvtj8mDru6EFg/nKVwW9z26d3a9oYoq5MTNEl5PbrS9wsupULIKDwkd4unIPA
IISBFV/o3UBwAP0TU6jLHG7tgryuIIau5HHNDwkIbuxn/vj0A0HY1ZhvWD1xs1XW
F+TzBybUzPAlEyzGYhhZR+Z/xjtUFWPXxdmC+MD1/qSvMqVpDNpSjTkJZXw7cYHf
GluLlP0Q2ZQI8uOG+uXXhcHUpi61OpmXSyIgST+FGynq28y28aiOUs/6e0i7SnZe
lsODEzqXAgMBAAECggEADvKSIIvioAdmILkD6h1BH71AlxXEOrjey4URHQulXvCV
/lmJuLypkUJGT03pYGe0wOpFKgFoQbyxL8MsMBHndMXKWoJkTy/X0suHDoJGSkNa
nlSkV99jgpyYCLtTFTUQLjyfLs8I6r2o899pCxxgp1XjeHj9zxfMgqVsNskN556c
wWsiICcpZFFEolXXswLDw3WM1n7Ktq7tpCZZksIPCI0s5V0lMcezd284lkV4AkyQ
oXy1viwf2COjT7QqsKR7SAMIRsIsk0RlkPJar3o4FmaD9GA5EUfuC0etSxypbkH7
J8eaCVwv9ns23hUvjR89Fs4HTYxWr0/svi0hMSyY8QKBgQDX71HdH8fwhCPMnjOq
gYrFp/9I3ghoFyswupPQv5cVmEzqrweI4E/tZNJrM70Z1V+0tI8rGc2hmgPTB3HS
A8zFyXj8eU3Up/hXjhVkdi9qzF89ImLA9LT0MFMx38NEHoPUkO6wxTAFuF4Wvhi/
S6dnag3uNjJ5xLlNjrQhLNR4UwKBgQDJR1eA67CfJo9oZBU4lJzruHRVmX3sARpd
lXAgOD7q4DTjL3/bq/+n19sVAh34mTdI0vAVIGlp4oZVohjsByOwPkL8rt0HyhdA
+RYyMD5H+Azp5Qvx4MJhUQxhg2WCjPqthU6bunqCWu2kSZkvkX/t/sX8fqS6NvYj
IOflwwscLQKBgH+PbeHd02Qe+3L2Bfl0u0DWZHVsTLUI8se/gHCxrZPhO5brvNy7
/ht0EuWnU89+ACKlA2pnvNT5QccZP8Db48z3ntQu6K52Z7t5QOPu+UXy41QfCw2H
wZn7LjppQFXuXNxmncqpQhwu9M4kkEP5cjQiL4aIV7sdXoYVhg2PCRjnAoGAf3Pg
ce9MsQp+xrCRS3m3gAAWEloWhYoRQu8syAo1tQ7yDmX2hYh9Y6/ot33WsqN6gW+o
vQgAGB9rxu/U7ih7Lc/PJSgpKBSM8wSHTJKF7Zahvr3d+XTEQVFMELdeYPOajKQc
KbpEdyTS1DQSfy+YHYE1p3QeJRhGdeoRTcla0KUCgYA+HSr6b3q/vU+/LGujNJls
656gtZHTlAobfjqOzA1vbNalHT26/Ikv7cPzAXO1mHsxcxUa9zeS2V+RDzy+RF15
kfWTgY4GaDbhQhFg0KrcbloH+p8oNWpqvyynoJxP1IFQWn+VJW2tN1uSAtlD2dBQ
+Z56YzbOQlvvml7ajzxzSg=="
key:
certificate: "MIIEJDCCAwygAwIBAgIUe/WTHloXepTi86Qcg5phbsuoZxgwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjMwNzE4MDI0NTAzWhcNMjgwNzE2MDI0NTAzWjB+MRMwEQYDVQQDDAox
NjQ4NjUzNTMzMRswGQYDVQQKDBLlvq7kv6HllYbmiLfns7vnu58xKjAoBgNVBAsM
IeadreW3nuS6keS6q+mjnuenkeaKgOaciemZkOWFrOWPuDELMAkGA1UEBgwCQ04x
ETAPBgNVBAcMCFNoZW5aaGVuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAqccUdWWQi5S5/l1gl/dFKyROok/UuBW39vFjCHaoLbJPSB7iBRMuI3ynPxms
sSmrBQO6+f3LE3mbkoRj4b7Y/Jg67uhBYP5ylcFvc9und2vaGKKuTEzRJeT260vc
LLqVCyCg8JHeLpyDwCCEgRVf6N1AcAD9E1Ooyxxu7YK8riCGruRxzQ8JCG7sZ/74
9ANB2NWYb1g9cbNV1hfk8wcm1MzwJRMsxmIYWUfmf8Y7VBVj18XZgvjA9f6krzKl
aQzaUo05CWV8O3GB3xpbi5T9ENmUCPLjhvrl14XB1KYutTqZl0siIEk/hRsp6tvM
tvGojlLP+ntIu0p2XpbDgxM6lwIDAQABo4G5MIG2MAkGA1UdEwQCMAAwCwYDVR0P
BAQDAgP4MIGbBgNVHR8EgZMwgZAwgY2ggYqggYeGgYRodHRwOi8vZXZjYS5pdHJ1
cy5jb20uY24vcHVibGljL2l0cnVzY3JsP0NBPTFCRDQyMjBFNTBEQkMwNEIwNkFE
Mzk3NTQ5ODQ2QzAxQzNFOEVCRDImc2c9SEFDQzQ3MUI2NTQyMkUxMkIyN0E5RDMz
QTg3QUQxQ0RGNTkyNkUxNDAzNzEwDQYJKoZIhvcNAQELBQADggEBAJ76xFfSq9t6
SvJGhhMuwtS+LlODpiSHd7C39+cWNEk/VR9nF/j8CSzjZduaQw/BZCeIfgGFbDFW
yAgmoGMNGdkOV3qFQZZxkTDCo4EbTklEvLw+0c9r6T8sIfPujCeZgk1aEIJul8ig
gXkyyzD4xR89PMAxh5srSvmAcIsGMSca3l1mFs4uDLs1uB3knOT0lv57w1aDTXMf
ZAT1f24ANAOVMGjhYRCfnKSDBi8QEE7Nj7l5ESQvnUq5pwDbbB3U/nLAKOb4o4Zx
5je/1HN0fauKhCC6HPY5FpJ3wKUm6dUDims5ZXuAIeaEy1HQ2h/om7e72x/rdDdz
5cl2IgwSfNM="
...@@ -16,6 +16,14 @@ ...@@ -16,6 +16,14 @@
values (#{orderPort}, #{orderNo}, #{amount}, #{description}, values (#{orderPort}, #{orderNo}, #{amount}, #{description},
#{tradeState}, #{userAccountId}, #{prepayId}, #{openId}) #{tradeState}, #{userAccountId}, #{prepayId}, #{openId})
</insert> </insert>
<insert id="insertApplyRefundLog">
insert into apply_refund_log (order_no,
total,
refund,
currency,
out_refund_no, reason)
values (#{orderNo}, #{total}, #{refund}, #{currency}, #{outRefundNo}, #{reason})
</insert>
<update id="updateWxPayLog"> <update id="updateWxPayLog">
update wx_pay_log update wx_pay_log
set out_trade_no = #{outTradeNo}, set out_trade_no = #{outTradeNo},
...@@ -31,6 +39,18 @@ ...@@ -31,6 +39,18 @@
trade_state_desc = #{tradeStateDesc} trade_state_desc = #{tradeStateDesc}
where order_no = #{outTradeNo} where order_no = #{outTradeNo}
</update> </update>
<update id="updateApplyRefundLog">
update apply_refund_log
set refund_id = #{refundId},
transaction_id = #{transactionId},
channel = #{channel},
user_received_account = #{userReceivedAccount},
success_time = #{successTime},
create_time = #{createTime},
status = #{status},
funds_account = #{fundsAccount}
</update>
<delete id="deleteWxPayLogByOrderNo"> <delete id="deleteWxPayLogByOrderNo">
delete delete
from wx_pay_log from wx_pay_log
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论