namespace Wechat.PayAPI { public class OrderQuery { /*** * 订单查询完整业务流程逻辑 * @param order 所查定单信息 * @return 订单查询结果 */ public static WxPayData Run(Gateway.Payment.Shared.PaymentOrder order) { WxPayData data = new WxPayData(); data.SetValue("out_trade_no", order.BillNumber); WxPayData result = WxPayApi.OrderQuery(data, (Gateway.Payment.Shared.WxPayConfig)order.Config);//提交订单查询请求给API,接收返回数据 if (result.GetValue("return_code").ToString() == "SUCCESS" && result.GetValue("result_code").ToString() == "SUCCESS") { //定单状态为支付成功 if (result.GetValue("trade_state").ToString() == "SUCCESS") { order.TradeStatus = Gateway.Payment.Shared.TradeStatusEnum.SUCCESS; } else if ((result.GetValue("trade_state").ToString() == "CLOSED") || (result.GetValue("trade_state").ToString() == "REVOKED")) { order.TradeStatus = Gateway.Payment.Shared.TradeStatusEnum.CLOSED; } } return result; } } }