一,问题
今天要将微信的最后一个功能给做完了,这个功能就是申请退款。刚开始我先看了一下文档,发现它跟那个企业付款到零钱特别相似,然后就自己模仿企业付款到零钱把它给实现了。
二,解决方法
申请退款官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
2.1 下载商家证书,再将证书放到项目中
①下载商家证书
②将证书放到项目中
2.2 将官方的demo下载下来,将里面的工具类全都放到项目中
官方demo下载地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
2.3 准备好8个必须的参数
①先拿到7个参数
appid:公众账号ID
mch_id:商户号
nonce_str:随机字符串
out_trade_no:商户订单号
out_refund_no:商户退款单号
total_fee:订单金额
refund_fee:退款金额
②根据上面的7个参数,得到第8个参数
sign:自己的签名。利用上面7个参数生成
2.4 发送去微信,让微信执行退款操作
2.5 源码
①RefundController
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jc.util.wxPay.WXPayUtil;
import controller.AuthUtil;
import transfercontroller.CertHttpUtil;
/**
* @author: KOLO
* @date:2018年12月29日 上午9:13:58
* @version: 1.0 申请订单退款
*/
@Controller
@RequestMapping("/refund")
public class RefundController {
/**
* @Title: transfer
* @Description: 申请订单退款
* @param:
* @return:
*/
@RequestMapping("/out"