Exemplo n.º 1
0
        // https://docs.mollie.com/guides/webhooks#example
        public PaymentCallback Notify(RenderContext context)
        {
            // mollie callback only inputs an id, we need to check status using check status api manually.
            var molliePaymentId = context.Request.Get("id");

            if (string.IsNullOrWhiteSpace(molliePaymentId))
            {
                return(null);
            }

            var statusResponse = new MollieApi(Setting.ApiToken).CheckStatus(molliePaymentId);

            if (!Guid.TryParse(statusResponse.Metadata, out var requestId) ||
                PaymentManager.GetRequest(requestId, context) == null)
            {
                return(null);
            }

            var status = ConvertStatus(statusResponse.Status);

            return(new PaymentCallback
            {
                RequestId = requestId,
                Status = status,
                RawData = context.Request.Body,
                CallbackResponse = new Callback.CallbackResponse
                {
                    StatusCode = 204
                }
            });
        }
Exemplo n.º 2
0
        public PaymentStatusResponse checkStatus(PaymentRequest request)
        {
            var result = new PaymentStatusResponse {
                HasResult = true
            };

            try
            {
                var paymentId      = request.ReferenceId;
                var statusResponse = new MollieApi(Setting.ApiToken).CheckStatus(paymentId);

                result.Status = ConvertStatus(statusResponse.Status);
            }
            catch (AggregateException ex)
            {
                Kooboo.Data.Log.Instance.Exception.WriteException(ex.InnerException);
            }

            return(result);
        }
Exemplo n.º 3
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            var callbackUrl = PaymentHelper.GetCallbackUrl(this, nameof(Notify), Context);
            var req         = new MolliePaymentRequest
            {
                Amount = new Amount
                {
                    Currency = request.Currency,
                    Value    = request.TotalAmount.ToString("#.00")
                },
                Description = request.Description,
                RedirectUrl = Setting.RedirectUrl,
                WebhookUrl  = callbackUrl
            };

            var resp = new MollieApi(Setting.ApiToken).CreatePayment(req);

            return(new RedirectResponse(resp.Links.Checkout.Href, request.Id)
            {
                paymemtMethodReferenceId = resp.Id
            });
        }
Exemplo n.º 4
0
        public IPaymentResponse Charge(PaymentRequest request)
        {
            var callbackUrl = PaymentHelper.GetCallbackUrl(this, nameof(Notify), Context);
            var req         = new MolliePaymentRequest
            {
                Amount = new Amount
                {
                    Currency = request.Currency,
                    Value    = CurrencyDecimalPlaceConverter.ToDecimalPlaceString(request.Currency, request.TotalAmount)
                },
                Description = request.Description,
                RedirectUrl = !string.IsNullOrWhiteSpace(request.ReturnUrl) ? request.ReturnUrl : Setting.RedirectUrl,
                WebhookUrl  = callbackUrl,
                Metadata    = request.Id.ToString()
            };

            var resp = new MollieApi(Setting.ApiToken).CreatePayment(req);

            return(new RedirectResponse(resp.Links.Checkout.Href, request.Id)
            {
                paymemtMethodReferenceId = resp.Id
            });
        }