微信后端代码
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

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);
}
}