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.
		
		
		
		
			
				
					84 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					84 lines
				
				3.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.wx.servlet.test;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.pay.Order;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.wx.config.WeChatConfig;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.CodeHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.ErrorHelper;
							 | 
						||
| 
								 | 
							
								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;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @Author wsq
							 | 
						||
| 
								 | 
							
								 * @Date 2021/6/28 16:10
							 | 
						||
| 
								 | 
							
								 * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								public class OrderTest {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//    public static void main(String[] args) {
							 | 
						||
| 
								 | 
							
								//        Pay pay = queryOrder("WX560aae435d5940a677044b52df27");
							 | 
						||
| 
								 | 
							
								//        System.out.println(JsonHelper.toJsonString(pay));
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 查询订单
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param outTradeNo 订单号
							 | 
						||
| 
								 | 
							
								     * @return 订单信息
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static Order queryOrder(String outTradeNo) {
							 | 
						||
| 
								 | 
							
								        Order order = new Order();
							 | 
						||
| 
								 | 
							
								        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 mchOrderInfoResult = PayMchAPI.payOrderquery(mchOrderquery, mchKey);
							 | 
						||
| 
								 | 
							
								            if (!"SUCCESS".equals(mchOrderInfoResult.getReturn_code())) {
							 | 
						||
| 
								 | 
							
								                order.setErrorCode(mchOrderInfoResult.getReturn_code());
							 | 
						||
| 
								 | 
							
								                order.setErrorMsg(mchOrderInfoResult.getReturn_msg());
							 | 
						||
| 
								 | 
							
								                return order;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 业务发生错误
							 | 
						||
| 
								 | 
							
								            if (!"SUCCESS".equals(mchOrderInfoResult.getResult_code())) {
							 | 
						||
| 
								 | 
							
								                order.setErrorCode(mchOrderInfoResult.getErr_code());
							 | 
						||
| 
								 | 
							
								                order.setErrorMsg(mchOrderInfoResult.getErr_code_des());
							 | 
						||
| 
								 | 
							
								                return order;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 交易成功
							 | 
						||
| 
								 | 
							
								            if ("SUCCESS".equals(mchOrderInfoResult.getTrade_state())) {
							 | 
						||
| 
								 | 
							
								                order.setSuccess(true);
							 | 
						||
| 
								 | 
							
								                order.setBankTransNo(mchOrderInfoResult.getTransaction_id());
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                order.setErrorCode(mchOrderInfoResult.getTrade_state());
							 | 
						||
| 
								 | 
							
								                order.setErrorMsg(mchOrderInfoResult.getTrade_state_desc());
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            order.setOutTradeNo(outTradeNo);
							 | 
						||
| 
								 | 
							
								            order.setTotalFee(new BigDecimal(mchOrderInfoResult.getTotal_fee()).movePointLeft(2));
							 | 
						||
| 
								 | 
							
								        } catch (Exception e) {
							 | 
						||
| 
								 | 
							
								            ErrorHelper.println(e);
							 | 
						||
| 
								 | 
							
								            order.setErrorMsg(e.getMessage());
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return order;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static void main(String[] args){
							 | 
						||
| 
								 | 
							
								        String piMd5 = "9444144" + "T2001" + "xbd";
							 | 
						||
| 
								 | 
							
								        piMd5 = DigestUtils.md5Hex(piMd5).toUpperCase();
							 | 
						||
| 
								 | 
							
								        System.out.println(piMd5);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |