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.页面制作
