示例#1
0
        public async Task <BaseApiResponse> PaymentAccepted(ProcessorPaymentRequest request)
        {
            request.CheckNotNull(nameof(request));

            var paymentDTO = WaitUntilAvailable(request.PaymentId);

            if (paymentDTO == null)
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "没有支付项目"
                });
            }

            var command = new CompletePaymentCommand {
                AggregateRootId = request.PaymentId
            };
            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            return(new BaseApiResponse());
        }
示例#2
0
        public async Task <BaseApiResponse> PaymentAccepted([FromBody] ProcessorPaymentRequest request)
        {
            request.CheckNotNull(nameof(request));

            var payment = _paymentQueryService.FindPayment(request.PaymentId);

            if (payment == null)
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "没有支付项目"
                });
            }

            var command = new CompletePaymentCommand(
                new Common.PayInfo(request.Total, request.ShopCash))
            {
                AggregateRootId = request.PaymentId
            };
            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            return(new BaseApiResponse());
        }
        public async Task Handle(CreditCards.Messages.Events.MoneyWithdrawnEvent message, IMessageHandlerContext context)
        {
            var command = new CompletePaymentCommand(
                message.TransferId,
                message.OrderId
                );
            await context.SendLocal(command).ConfigureAwait(false);

            MarkAsComplete();
        }
示例#4
0
 public void Handle(ICommandContext context, CompletePaymentCommand command)
 {
     context.Get <Payment>(command.AggregateRootId).Complete(command.PayInfo);
 }