private async Task <ASquare_Payment> GetPaymentDetails(MSquare_Payment mPayment)
        {
            var mPaymentTransactions = await SquareMicroService.GetPaymentTransactionSummariesAsync(mPayment.SquarePaymentId, null, null);

            var mPaymentEvents = await SquareMicroService.GetPaymentEventLogSummariesAsync(mPayment.SquarePaymentId, null, null);

            var mRefundTransactions = await SquareMicroService.GetRefundTransactionSummariesAsync(null, mPayment.SquarePaymentId, null, null);

            var mRefundEvents = await SquareMicroService.GetRefundEventLogSummariesAsync(null, mPayment.SquarePaymentId, null, null);

            var mUser = TryParseUserId.FromSquareCustomerReference(mPayment.SquareCustomerReference, out string userId)
                ? await UserMicroService.GetUserAsync(userId).ConfigureAwait(false)
                : null;

            var funderReference = CreateFunderReference.FromSquarePaymentId(mPayment.SquarePaymentId);
            var funderId        = await FundingMicroService.LookupFunderAsync(funderReference);

            var result = new ASquare_Payment()
            {
                MPayment             = mPayment,
                MPaymentTransactions = mPaymentTransactions,
                MPaymentEvents       = mPaymentEvents,
                MRefundTransactions  = mRefundTransactions,
                MRefundEvents        = mRefundEvents,
                MUser    = mUser,
                FunderId = funderId
            };

            return(result);
        }
Exemple #2
0
        private async Task HandlePaymentEventAsync(MSquare_Event eventData)
        {
            var funderReference = CreateFunderReference.FromSquarePaymentId(eventData.SquarePaymentId);
            var funderId        = await FundingMicroService.AllocateFunderAsync(funderReference).ConfigureAwait(false);

            if (TryParseOrderId.FromSquarePaymentReference(eventData.SquarePaymentReference, out var orderId))
            {
                var fundableReference = CreateFundableReference.FromOrderId(orderId);

                await FundingMicroService.SetFundsReceivedAsync(funderId, fundableReference, eventData.PaymentAmount, eventData.UnitOfWork).ConfigureAwait(false);

                await FundingMicroService.SetProcessingFeeAsync(funderId, fundableReference, eventData.ProcessingFeeAmount, eventData.UnitOfWork).ConfigureAwait(false);

                await FundingMicroService.SetFundsRefundedAsync(funderId, fundableReference, eventData.RefundAmount, eventData.UnitOfWork).ConfigureAwait(false);
            }
        }