// 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 } }); }
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); }
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 }); }
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 }); }