OrderQuery.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. 
  2. namespace Wechat.PayAPI
  3. {
  4. public class OrderQuery
  5. {
  6. /***
  7. * 订单查询完整业务流程逻辑
  8. * @param order 所查定单信息
  9. * @return 订单查询结果
  10. */
  11. public static WxPayData Run(Gateway.Payment.Shared.PaymentOrder order)
  12. {
  13. WxPayData data = new WxPayData();
  14. data.SetValue("out_trade_no", order.BillNumber);
  15. WxPayData result = WxPayApi.OrderQuery(data, (Gateway.Payment.Shared.WxPayConfig)order.Config);//提交订单查询请求给API,接收返回数据
  16. if (result.GetValue("return_code").ToString() == "SUCCESS"
  17. && result.GetValue("result_code").ToString() == "SUCCESS")
  18. {
  19. //定单状态为支付成功
  20. if (result.GetValue("trade_state").ToString() == "SUCCESS")
  21. {
  22. order.TradeStatus = Gateway.Payment.Shared.TradeStatusEnum.SUCCESS;
  23. }
  24. else if ((result.GetValue("trade_state").ToString() == "CLOSED") ||
  25. (result.GetValue("trade_state").ToString() == "REVOKED"))
  26. {
  27. order.TradeStatus = Gateway.Payment.Shared.TradeStatusEnum.CLOSED;
  28. }
  29. }
  30. return result;
  31. }
  32. }
  33. }