// 查询 public async Task <Pay_Order> Query(Pay_Order order) { var model = new AlipayTradeQueryModel { OutTradeNo = order.Order_SN }; var req = new AlipayTradeQueryRequest(); req.SetBizModel(model); var res = await client.ExecuteAsync(req, options.Value); if (res.TradeStatus == "TRADE_SUCCESS") { if (order.State == OrderState.Pending) { return(OrderService.Paidup( order, res.TradeNo, res.TotalAmount.ToObject <decimal>(), res.SendPayDate, PayType.Alipay )); } } return(order); }
// 查询订单 public async Task <OrderResult> Query(Pay_Order order) { var req = new WeChatPayOrderQueryRequest { OutTradeNo = order.Order_SN }; logger.LogDebug($"Wepay Query begin with: {order.Id}"); var res = await client.ExecuteAsync(req, options.Value); if (res.ReturnCode == "SUCCESS" && res.ResultCode == "SUCCESS") { logger.LogDebug($"Wepay Query end with: {order.Id} {res.TradeState}"); if (order.State == OrderState.Pending) { if (res.TradeState == "SUCCESS") { logger.LogDebug($"Wepay Query Paidup with: {order.Id}"); order = OrderService.Paidup( order, res.TransactionId, (decimal)(res.TotalFee / 100.0), res.TimeEnd, PayType.Wechat ); } else if (res.TradeState == "CLOSED") { order = OrderService.Close(order, PayType.Wechat); } else if (res.TradeState == "REFUND") { order = OrderService.Refund(order, PayType.Wechat); } else if (res.TradeState == "REVOKED") { order = OrderService.Reverse(order, PayType.Wechat); } } return(new OrderResult { Success = true, Order = order }); } logger.LogDebug($"Wepay Query end with: {order.Id} FAIL: {res.ErrCode}:{res.ErrCodeDes}"); return(new OrderResult { Success = false, Error = $"{res.ErrCode}:{res.ErrCodeDes}" }); }
public async Task <OrderResult> Reverse(Pay_Order order) { if (order.State != OrderState.Paidup) { // 只有已支付时可撤销订单 return(new OrderResult { Success = false, Error = $"只有已支付的订单可撤销" }); } var request = new WeChatPayReverseRequest { TransactionId = order.Pay_Id }; logger.LogDebug($"Wepay Reverse begin with: {order.Id}"); var res = await client.ExecuteAsync(request, options.Value); if (res.ReturnCode == "SUCCESS" && res.ResultCode == "SUCCESS") { logger.LogDebug($"Wepay Reverse end with: {order.Id} SUCCESS"); return(new OrderResult { Success = true, Order = OrderService.Reverse(order, PayType.Wechat) }); } logger.LogDebug($"Wepay Reverse end with: {order.Id} FAIL: {res.ErrCode}:{res.ErrCodeDes}"); return(new OrderResult { Success = false, Error = $"{res.ErrCode}:{res.ErrCodeDes}" }); }
public async Task <OrderResult> Close(Pay_Order order) { if (order.State != OrderState.Pending) { // 只有待支付时可关闭订单 return(new OrderResult { Success = false, Error = $"只有未支付的订单可关闭" }); } var request = new WeChatPayCloseOrderRequest { OutTradeNo = order.Order_SN }; logger.LogDebug($"Wepay Close begin with: {order.Id}"); var res = await client.ExecuteAsync(request, options.Value); if (res.ReturnCode == "SUCCESS" && res.ResultCode == "SUCCESS") { logger.LogDebug($"Wepay Close end with: {order.Id} SUCCESS"); return(new OrderResult { Success = true, Order = OrderService.Close(order, PayType.Wechat) }); } logger.LogDebug($"Wepay Close end with: {order.Id} FAIL: {res.ErrCode}:{res.ErrCodeDes}"); return(new OrderResult { Success = false, Error = $"{res.ErrCode}:{res.ErrCodeDes}" }); }