java 查询微信支付订单
总体思路
- 对参数进行加密
- 发送请求,请求回来的参数进行验签
- 后续你自己的处理逻辑
1.对参数进行加密
//对参数进行加密 public String getSign(Map<String, Object> convert) { //转换成key=value&key1=value1 String urlMap = WxUtil.sortMap(convert,"你的商户key"); //加密 return SecureUtil.md5(urlMap).toUpperCase(); }
发送请求对返回参数进行验签
//hutool里的XmlUtil Map<String, Object> responseMap = XmlUtil.xmlToMap(responseXml); //判断result_code和return_code //取出返回来的sign用于比较 String resonseSign = responseMap.get("sign").toString(); //对返回的sign进行验签,验签不需要sign所以移除 responseMap.remove("sign"); //调用上面的getSign(Map<String, Object> convert)方法进行加密 String sign = getSign(responseMap); //true为验证通过 boolean verifySign = sign.equals(resonseSign );
接下来就是看订单状态[trade_state]
trade_state有7种状态 SUCCESS—支付成功 REFUND—转入退款 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销(刷卡支付) USERPAYING–用户支付中 PAYERROR–支付失败(其他原因,如银行返回失败)
上一篇:
uniapp开发微信小程序-2.页面制作