| | |
| | | package com.panzhihua.applets.unionpay; |
| | | |
| | | import com.panzhihua.common.utlis.DateUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.codec.binary.Base64; |
| | | import org.apache.commons.codec.digest.DigestUtils; |
| | | |
| | |
| | | * 测试环境:http://58.247.0.18:29015/v1/netpay/refund |
| | | * 生产环境:https://api-mop.chinaums.com/v1/netpay/refund |
| | | */ |
| | | @Slf4j |
| | | public class Refund { |
| | | |
| | | static String url = "https://api-mop.chinaums.com/v1/netpay/refund"; |
| | |
| | | LocalDateTime time= DateUtils.getCurrentDate(); |
| | | RefundBody reqBody = new RefundBody(); |
| | | reqBody.requestTimestamp = time.format(DateUtils.format_ymdhms);// "2019-08-09 17:30:55"; |
| | | reqBody.merOrderId =UnionpayContent.TOP4+time.format(DateUtils.format_ymdhms_yyyyMMddmmHHssSSS)+makeUUID(7); |
| | | reqBody.merOrderId =refundOrderId; |
| | | reqBody.mid =UnionpayContent.MID; |
| | | reqBody.tid = UnionpayContent.TID; |
| | | reqBody.instMid = UnionpayContent.INSTMID; |
| | | reqBody.refundAmount = refundAmount; |
| | | reqBody.refundOrderId = refundOrderId; |
| | | System.out.println("request body:\n"+reqBody); |
| | | |
| | | |
| | | log.error("银联退款参数 :" + reqBody); |
| | | //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功 |
| | | String authorization = null; |
| | | try { |
| | |
| | | time.format(DateUtils.format_ymdhms_string),"nonce",reqBody.toString()); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("退款失败"); |
| | | return "退款失败"; |
| | | } |
| | | System.out.println("authorization:\n"+authorization); |
| | | |
| | | log.error("银联退款参数authorization :" + authorization); |
| | | //3. 发送http请求,并解析返回信息 |
| | | String response = request(url,authorization,reqBody.toString()); |
| | | System.out.println("response:\n"+response); |
| | | log.error("银联退款参数response :" + response); |
| | | return response; |
| | | } |
| | | |