You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					
					
						
							102 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
	
	
							102 lines
						
					
					
						
							3.7 KiB
						
					
					
				| package com.ynxbd.common.service;
 | |
| 
 | |
| import com.ynxbd.common.bean.enums.MerchantEnum;
 | |
| import com.ynxbd.common.bean.pay.Order;
 | |
| import com.ynxbd.common.dao.his.HisRecipeDao;
 | |
| import com.ynxbd.common.helper.common.CodeHelper;
 | |
| import com.ynxbd.common.helper.common.DateHelper;
 | |
| import com.ynxbd.common.helper.common.ErrorHelper;
 | |
| import com.ynxbd.common.helper.common.JsonHelper;
 | |
| import com.ynxbd.common.result.JsonResult;
 | |
| import com.ynxbd.wx.wxfactory.WxPayHelper;
 | |
| import com.ynxbd.wx.config.WeChatConfig;
 | |
| import lombok.extern.slf4j.Slf4j;
 | |
| import org.apache.commons.codec.digest.DigestUtils;
 | |
| import weixin.popular.api.PayMchAPI;
 | |
| import weixin.popular.bean.paymch.MchOrderInfoResult;
 | |
| import weixin.popular.bean.paymch.MchOrderquery;
 | |
| 
 | |
| import java.math.BigDecimal;
 | |
| import java.util.ArrayList;
 | |
| 
 | |
| @Slf4j
 | |
| public class Test {
 | |
| 
 | |
| 
 | |
|     public static void main(String[] args) {
 | |
| //        System.out.println(JsonHelper.toJsonString(queryOrder("WX7c1ea238c08f420d2bb8262f7254")));
 | |
|         String piMd5 = "9444144" + "Z2007" + "xbd";
 | |
|         piMd5 = DigestUtils.md5Hex(piMd5).toUpperCase();
 | |
|         System.out.println(piMd5);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 查询订单
 | |
|      *
 | |
|      * @param outTradeNo 订单号
 | |
|      * @return 订单信息
 | |
|      */
 | |
|     public static Order queryOrder(String outTradeNo) {
 | |
|         Order order = new Order();
 | |
|         order.setOutTradeNo(outTradeNo);
 | |
|         try {
 | |
|             MchOrderquery mchOrderquery = new MchOrderquery();
 | |
|             String appId = WeChatConfig.APP_ID;
 | |
|             String mchId = WeChatConfig.MCH_ID;
 | |
|             String mchKey = WeChatConfig.MCH_KEY;
 | |
| 
 | |
|             mchOrderquery.setAppid(appId);
 | |
|             mchOrderquery.setMch_id(mchId);
 | |
|             mchOrderquery.setOut_trade_no(outTradeNo);
 | |
|             mchOrderquery.setNonce_str(CodeHelper.get32UUID());
 | |
| 
 | |
|             MchOrderInfoResult wxResult = PayMchAPI.payOrderquery(mchOrderquery, mchKey);
 | |
|             if (wxResult == null) {
 | |
|                 order.setErrorMsg("【微信】查询订单失败");
 | |
|                 return order;
 | |
|             }
 | |
| 
 | |
|             // 调用错误
 | |
|             if (WxPayHelper.FAIL.equals(wxResult.getReturn_code())) {
 | |
|                 order.setErrorCode(wxResult.getReturn_code());
 | |
|                 order.setErrorMsg(wxResult.getReturn_msg());
 | |
|                 return order;
 | |
|             }
 | |
| 
 | |
|             // 业务错误
 | |
|             if (WxPayHelper.FAIL.equals(wxResult.getResult_code())) {
 | |
|                 order.setErrorCode(wxResult.getErr_code());
 | |
|                 order.setErrorMsg(wxResult.getErr_code_des());
 | |
|                 return order;
 | |
|             }
 | |
| 
 | |
|             String tradeState = wxResult.getTrade_state();
 | |
|             order.setTradeState(tradeState);
 | |
| 
 | |
|             if (WxPayHelper.SUCCESS.equals(tradeState)) {
 | |
|                 order.setSuccess(true); // 订单支付成功(判断条件)
 | |
| 
 | |
|             } else if (WxPayHelper.REFUND.equals(tradeState)) {
 | |
|                 order.setErrorMsg(wxResult.getTrade_state_desc());
 | |
|                 order.setRefund(true); // 订单发生过退款
 | |
|             } else {
 | |
|                 // 交易错误
 | |
|                 order.setErrorCode(tradeState);
 | |
|                 order.setErrorMsg(wxResult.getTrade_state_desc());
 | |
|                 return order;
 | |
|             }
 | |
| 
 | |
|             // 交易成功
 | |
|             order.setOpenid(wxResult.getOpenid());
 | |
|             order.setBankTransNo(wxResult.getTransaction_id());
 | |
|             Integer totalFee = wxResult.getTotal_fee();
 | |
|             if (totalFee != null) {
 | |
|                 order.setTotalFee(new BigDecimal(totalFee).movePointLeft(2));
 | |
|             }
 | |
|         } catch (Exception e) {
 | |
|             ErrorHelper.println(e);
 | |
|             order.setErrorMsg("异常信息:" + e.getMessage());
 | |
|         }
 | |
|         return order;
 | |
|     }
 | |
| }
 | |
| 
 |