1、介绍
代码地址: https://github.com/xm646236438/wechat_pay_score/tree/master
SpringBoot
具体的代码以及逻辑可以看 微信支付分(一)–创建支付分订单 以及 GitHub
上一篇博客: 微信支付分(二)–查询支付分订单
上一篇博客: 微信支付分(四)–取消支付分订单
2、代码
public CommonResult refund(String orderNo, int amount) {
JSONObject parameters = new JSONObject();
parameters.put("appid", appId);
parameters.put("service_id", serviceId);
List<JSONObject> postPaymentsList = new ArrayList<>();
JSONObject postPayments = new JSONObject();
postPayments.put("name", "test");
postPayments.put("amount", amount);
postPaymentsList.add(postPayments);
parameters.put("post_payments", postPaymentsList);
parameters.put("total_amount", amount);
JSONObject timeRange = new JSONObject();
timeRange.put("end_time", DateUtil.format(new Date(), "yyyyMMddHHmmss"));
parameters.put("time_range", timeRange);
JSONObject jsonObject;
createOrderUrl = createOrderUrl + "/" + orderNo + "/complete";
try {
log.info("请求参数: " + parameters);
String data = HttpRequest.post(createOrderUrl)
.header(Header.CONTENT_TYPE, "application/json")
.header(Header.ACCEPT, "application/json")
.header("Authorization", "WECHATPAY2-SHA256-RSA2048" + " "
+ PayScore.getToken("POST", createOrderUrl, JSONObject.toJSONString(parameters), mchId, serialNo, "pem/apiclient_key.pem"))
.body(JSONObject.toJSONString(parameters))
.execute().body();
jsonObject = JSONObject.parseObject(data);
System.out.println("返回参数: " + jsonObject);
} catch (Exception e) {
throw new SpringExceptionResolver("500", "网络超时!");
}
if (!StringUtils.isEmpty(jsonObject.getString("code"))) {
return CommonResult.fail(500, jsonObject.getString("message"));
}
switch (jsonObject.getString("state")) {
case "CREATED":
return CommonResult.fail(500, "订单未进行");
case "DOING":
// 当用户微信里面没有钱, 且对应绑定的银行卡里面也没有钱, 也就是说扣款失败的时候, 会返回该状态
// 当用户的微信里面有钱了, 微信会主动扣款, 并通知我们
return CommonResult.fail(500, "扣款失败");
case "DONE":
return CommonResult.success("SUCCESS", jsonObject);
case "REVOKED":
return CommonResult.fail(500, "订单已取消");
case "EXPIRED":
return CommonResult.fail(500, "订单已失效");
default:
return CommonResult.fail(500, "网络异常");
}
}