From f99d8098b0aee17c09be5dfee8b4f72a6f4071b1 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期日, 26 四月 2020 11:57:39 +0800
Subject: [PATCH] 同步老用户等级数据
---
utils/src/main/java/org/yeshi/utils/wx/WXPayUtil.java | 89 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 86 insertions(+), 3 deletions(-)
diff --git a/utils/src/main/java/org/yeshi/utils/wx/WXPayUtil.java b/utils/src/main/java/org/yeshi/utils/wx/WXPayUtil.java
index 9c3b6c0..2f3168c 100644
--- a/utils/src/main/java/org/yeshi/utils/wx/WXPayUtil.java
+++ b/utils/src/main/java/org/yeshi/utils/wx/WXPayUtil.java
@@ -1,10 +1,16 @@
package org.yeshi.utils.wx;
+import java.io.IOException;
import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.dom4j.DocumentException;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.StringUtil;
import org.yeshi.utils.entity.wx.RedPackParams;
@@ -20,6 +26,21 @@
*
*/
public class WXPayUtil {
+
+ private static String post(String url, String entity) {
+ HttpClient client = new HttpClient();
+ PostMethod method = new PostMethod(url);
+ method.setRequestBody(entity);
+ try {
+ client.executeMethod(method);
+ return method.getResponseBodyAsString();
+ } catch (HttpException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
/**
* 浠樻鍒伴浂閽�
@@ -200,7 +221,11 @@
String entity = WXUtil.loadWXMessage(map);
String result = HttpUtil.post("https://api.mch.weixin.qq.com/pay/unifiedorder", entity);
- System.out.println("缁熶竴涓嬪崟缁撴灉:" + result);
+ try {
+ System.out.println("缁熶竴涓嬪崟缁撴灉:" + new String(result.getBytes("GBK"), "UTF-8"));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
Map<String, String> resultMap = WXUtil.parseXML(result);
return resultMap;
@@ -261,8 +286,27 @@
map.put("out_trade_no", orderNo);
map.put("sign", WXUtil.getSignMD5(map, app.getMchKey()));
String result = HttpUtil.post("https://api.mch.weixin.qq.com/pay/orderquery", WXUtil.loadWXMessage(map));
- System.out.println("璁㈠崟鏌ヨ缁撴灉:" + result);
- Map<String, String> resultMap = WXUtil.parseXML(result);
+ try {
+ try {
+ result = new String(result.getBytes("GBK"), "UTF-8");
+ } catch (UnsupportedEncodingException e1) {
+ e1.printStackTrace();
+ }
+ System.out.println("璁㈠崟鏌ヨ缁撴灉:" + new String(result.getBytes("GBK"), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ Map<String, String> resultMap = null;
+ try {
+ resultMap = WXUtil.parseXML(result);
+ } catch (Exception e) {
+ try {
+ result = new String(result.getBytes("GBK"), "UTF-8");
+ } catch (UnsupportedEncodingException e1) {
+ e1.printStackTrace();
+ }
+ resultMap = WXUtil.parseXML(result);
+ }
if ("SUCCESS".equalsIgnoreCase(resultMap.get("return_code"))
&& "SUCCESS".equalsIgnoreCase(resultMap.get("result_code"))) {
if ("SUCCESS".equalsIgnoreCase(resultMap.get("trade_state")))// 鏀粯鎴愬姛
@@ -274,4 +318,43 @@
}
}
+ /**
+ *
+ * @param refundOrderNo
+ * -閫�娆惧崟鍙�
+ * @param app
+ * @return
+ * @throws WXOrderException
+ */
+ public static boolean isRefundSuccess(String refundOrderNo, WXAPPInfo app) throws WXOrderException {
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("appid", app.getAppId());
+ map.put("mch_id", app.getMchId());
+ map.put("nonce_str", StringUtil.getRandomCode(32));
+ map.put("out_refund_no", refundOrderNo);
+ map.put("sign", WXUtil.getSignMD5(map, app.getMchKey()));
+ String result = post("https://api.mch.weixin.qq.com/pay/refundquery", WXUtil.loadWXMessage(map));
+ System.out.println("璁㈠崟鏌ヨ缁撴灉:" + result);
+ Map<String, String> resultMap = null;
+ try {
+ resultMap = WXUtil.parseXML(result);
+ } catch (Throwable e) {
+ try {
+ result = new String(result.getBytes("GBK"), "UTF-8");
+ } catch (UnsupportedEncodingException e1) {
+ e1.printStackTrace();
+ }
+ resultMap = WXUtil.parseXML(result);
+ }
+ if ("SUCCESS".equalsIgnoreCase(resultMap.get("return_code"))
+ && "SUCCESS".equalsIgnoreCase(resultMap.get("result_code"))) {
+ if ("SUCCESS".equalsIgnoreCase(resultMap.get("refund_status_0")))// 閫�娆炬垚鍔�
+ return true;
+ else
+ return false;
+ } else {
+ throw new WXOrderException(100, "寰俊鏀粯鎺ュ彛鍑洪敊:" + result);
+ }
+ }
+
}
--
Gitblit v1.8.0