OrderQuery.cs 1.3 KB

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