Exemplo n.º 1
0
        public async Task <ActionResult> Store()
        {
            TradeResultModel tradeResultModel = null;

            try
            {
                tradeResultModel = _subscribesService.ResolveTradeResult(Request);
            }
            catch (Exception ex)
            {
                _logger.LogException(ex);

                if (ex is EcPayTradeFeedBackFailed)
                {
                    // rtnCode 不是 1 也不是 2
                    _logger.LogInfo("ResolveTradeResult: 1|OK");
                    return(Ok("1|OK"));
                }
                else if (ex is EcPayTradeFeedBackError)
                {
                    _logger.LogInfo($"ResolveTradeResult: 0|{ex.Message}");
                    return(Ok($"0|{ex.Message}"));
                }
                else
                {
                    throw ex;
                }
            }

            var subscribe = await _subscribesService.StorePayAsync(tradeResultModel);

            if (subscribe != null)
            {
                //付款訂閱完成
                BackgroundJob.Enqueue(() => NotifyUserAsync(subscribe.UserId));
            }

            return(Ok("1|OK"));
        }