public override CallbackResult ProcessCallback(OrderReadOnly order, HttpRequestBase request, OpayoSettings settings) { var callbackRequestModel = CallbackRequestModel.FromRequest(request); var client = new OpayoServerClient( logger, new OpayoServerClientConfig { ProviderAlias = Alias, ContinueUrl = paymentProviderUriResolver.GetContinueUrl(Alias, order.GenerateOrderReference(), hashProvider), CancelUrl = paymentProviderUriResolver.GetCancelUrl(Alias, order.GenerateOrderReference(), hashProvider), ErrorUrl = GetErrorUrl(order, settings) }); return(client.HandleCallback(order, callbackRequestModel, settings)); }
public override PaymentFormResult GenerateForm(OrderReadOnly order, string continueUrl, string cancelUrl, string callbackUrl, OpayoSettings settings) { var form = new PaymentForm(cancelUrl, FormMethod.Post); var client = new OpayoServerClient(logger, new OpayoServerClientConfig { ContinueUrl = continueUrl, CancelUrl = cancelUrl, ErrorUrl = GetErrorUrl(order, settings), ProviderAlias = Alias }); var inputFields = LoadInputFields(order, settings, callbackUrl); var responseDetails = client.InitiateTransaction(settings.TestMode, inputFields); var status = responseDetails[OpayoConstants.Response.Status]; Dictionary <string, string> orderMetaData = null; if (status == OpayoConstants.Response.StatusCodes.Ok || status == OpayoConstants.Response.StatusCodes.Repeated) { orderMetaData = GenerateOrderMeta(responseDetails); if (orderMetaData != null) { form.Action = responseDetails[OpayoConstants.Response.NextUrl]; } } else { logger.Warn <OpayoServerPaymentProvider>("Opayo (" + order.OrderNumber + ") - Generate html form error - status: " + status + " | status details: " + responseDetails["StatusDetail"]); } return(new PaymentFormResult() { MetaData = orderMetaData, Form = form }); }