123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- using Ant.Core.WebApi.Model;
- using Central.Control.WebApi.Config;
- using Central.Control.WebApi.Log4net;
- using Central.Control.WebApi.Models.Request;
- using Central.Control.WebApi.Models.Response;
- using Central.Control.WebApi.Service.Interface;
- using Com.Alipay.Business;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.Collections.Specialized;
- using System.IO;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Web;
- using System.Web.Http;
- using System.Web.Http.Results;
- namespace Central.Control.WebApi.Controllers
- {
- /// <summary>
- /// 订单相关接口
- /// </summary>
- [RoutePrefix("api/order")]
- public class OrderController : ApiController
- {
- private readonly IOrderService _orderService;
- private readonly ILog4NetHelper _log4NetHelper;
- /// <summary>
- ///
- /// </summary>
- /// <param name="orderService"></param>
- /// <param name="log4NetHelper"></param>
- public OrderController(IOrderService orderService,
- ILog4NetHelper log4NetHelper)
- {
- _orderService = orderService;
- _log4NetHelper = log4NetHelper;
- }
- /// <summary>
- /// 下单
- /// </summary>
- /// <param name="req"></param>
- /// <returns></returns>
- [HttpPost]
- [Route("")]
- public ApiResult<OrderResponseDto> Order(OrderRequestDto req)
- {
- return _orderService.Order(req);
- }
- /// <summary>
- /// 获取待烧烤的商品列表
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [Route("queueorders")]
- public ApiResult<List<QueueOrderResponseDto>> GetQueueOrders()
- {
- return _orderService.GetQueueOrders();
- }
- /// <summary>
- /// 取消未支付订单
- /// </summary>
- /// <returns></returns>
- [HttpPut]
- [Route("cancelunpayorder/{orderId}")]
- public ApiResult CancelUnPayOrder(string orderId)
- {
- return _orderService.CancelUnPayOrder(orderId);
- }
- /// <summary>
- /// 回写流程状态
- /// </summary>
- /// <param name="req"></param>
- /// <returns></returns>
- [HttpPost]
- [Route("orderprocess")]
- public ApiResult OrderProcess(OrderProcessRequestDto req)
- {
- return _orderService.OrderProcess(req);
- }
- /// <summary>
- /// 支付跳转地址
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("payredirect/{id}")]
- public RedirectResult PayRedirect(string id)
- {
- string userAgent = HttpContext.Current.Request.UserAgent;
- string redirectUrl = "http://api.rgtech.ltd/html/errorpaydevice.html";
- if (userAgent.ToLower().Contains("micromessenger"))
- {
- // 微信处理 微信支付暂接入所以暂时不管
- }
- else if (userAgent.ToLower().Contains("alipayclient"))
- {
- // 支付宝处理
- redirectUrl = _orderService.AliPayProcess(id);
- }
- return this.Redirect(redirectUrl);
- }
- /// <summary>
- /// 支付宝支付回写(已测试好,勿动)
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpPost]
- [Route("alipaynotify")]
- public HttpResponseMessage AliPayNotify()
- {
- var result = _orderService.AliPayNotify();
- HttpResponseMessage responseMessage = new HttpResponseMessage { Content = new StringContent(result, Encoding.GetEncoding("UTF-8"), "text/plain") };
- return responseMessage;
- }
- /// <summary>
- /// 申请退款
- /// </summary>
- /// <returns></returns>
- [HttpPut]
- [Route("orderrefund/{orderId}")]
- public ApiResult OrderRefund(string orderId)
- {
- return _orderService.OrderRefund(orderId);
- }
- /// <summary>
- /// 轮询查询退款信息,并更新订单的退款记录
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [Route("orderrefundloop")]
- public ApiResult OrderRefundLoop()
- {
- return _orderService.OrderRefundLoop();
- }
- /// <summary>
- /// 支付测试
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [Route("paytest")]
- public ApiResult<AlipayF2FPrecreateResult> PayTest()
- {
- return _orderService.PayTest();
- }
- /// <summary>
- /// app设备测试
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("appdevicetest")]
- public HttpResponseMessage AppDeviceTest()
- {
- string userAgent = HttpContext.Current.Request.UserAgent; ;
- string result = "";
- if (userAgent.ToLower().Contains("micromessenger"))
- {
- result = $"<h1>我是微信:{userAgent}</h1>";
- }
- else if (userAgent.ToLower().Contains("alipayclient"))
- {
- result = $"<h1>我是支付宝:{userAgent}</h1>";
- }
- else
- {
- result = $"<h1>请用微信或者支付宝扫码支付:{userAgent}</h1>";
- }
- HttpResponseMessage responseMessage = new HttpResponseMessage { Content = new StringContent(result, Encoding.GetEncoding("UTF-8"), "text/html") };
- return responseMessage;
- }
- /// <summary>
- /// app设备测试
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpGet]
- [Route("selftest")]
- public ApiResult selftest(int v1,int v2)
- {
- var ss = v1 / v2;
- var sss = v1 % v2;
- return new ApiResult() { Message = $"/{ss}|%{sss}" };
- }
-
- }
- }
|