DNN hotcake Способ оплаты - PullRequest
0 голосов
/ 13 мая 2019

Payment Express интеграция с модулем горячих пирожных DNN. Обратный редирект не идет к соответствующему контроллеру / действию. Он должен перенаправить в соответствующий раздел контроллера, чтобы обработать оба вида выходных параметров из шлюза оплаты. Может кто-нибудь помочь мне, какие вещи / конфигурации отсутствуют с этими горячими пирожными DNN?

Но когда процесс оплаты был сделан. Это никогда не ударяется ни в какой метод на

    public partial class PxCheckout: BaseStoreController
        {


            [NonCacheableResponseFilter]
            public ActionResult Index()
            {
            }
    }`enter code here`


public class PxStart : ThirdPartyCheckoutOrderTask
    {
   public override bool ProcessCheckout(OrderTaskContext context)
        {
            if (context.HccApp.CurrentRequestContext.RoutingContext.HttpContext != null)
            {
                try
                {
                    var settings = new PxSettings();
                    var methodSettings = context.HccApp.CurrentStore.Settings.MethodSettingsGet(PaymentMethodId);
                    settings.Merge(methodSettings);
                    var apiUrl = LiveUrl;
                    if (settings.DeveloperMode)
                        apiUrl = DeveloperUrl;
                    // Here you can do custom processing of your payment.

                    // It can be direct post to payment service or redirection to hosted payment page
                    // In either case you have to end up on HccUrlBuilder.RouteHccUrl(HccRoute.ThirdPartyPayment) page
                    // So either you have to do such redirect here on your own
                    // or make sure that third party hosted pay page will make it in case of successfull or failed payment
                    //string success = HccUrlBuilder.RouteHccUrl(HccRoute.ThirdPartyPayment);
                    //string failure =  HccUrlBuilder.RouteHccUrl(HccRoute.Checkout);


                    string cartReturnUrl = HccUrlBuilder.RouteHccUrl(HccRoute.ThirdPartyPayment);
                    string cartCancelUrl = HccUrlBuilder.RouteHccUrl(HccRoute.Checkout);


                    PxPay WS = new PxPay(settings.MerchantLoginId, settings.TransactionKey, apiUrl);

                    RequestInput input = new RequestInput();
                    input.AmountInput = Convert.ToString(context.Order.TotalGrand.ToString("#.##"));// t.Amount.ToString(CultureInfo.InvariantCulture);
                    input.CurrencyInput = "NZD";
                    input.MerchantReference = string.Format("{0}_{1}_{2}", context.Order.ShippingAddress.FirstName, context.Order.ShippingAddress.LastName, context.Order.UserID);
                    input.TxnType = "Purchase";
                    input.UrlFail = cartCancelUrl;// failure.Contains("?") ? failure + "&orderSucess=failure" : failure + "?orderSucess=failure";// HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path);// Request.Url.GetLeftPart(UriPartial.Path);
                    input.UrlSuccess = cartReturnUrl;// success.Contains("?") ? success + "&Ordersucess=true" : success + "?Ordersucess=true";// HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path);// Request.Url.GetLeftPart(UriPartial.Path);
                    input.TxnId =context.Order.OrderNumber;
                    var address = context.Order.BillingAddress;
                    input.BillingId = address.Line1 ;
                    input.EmailAddress = context.Order.UserEmail;
                    input.MerchantReference = context.Order.Instructions;
                    input.userid = Convert.ToString(context.UserId);

                   input.TxnData1= "";
                    if (settings.DebugMode)
                    {
                        EventLog.LogEvent("PxPay Checkout", input.UrlSuccess, EventLogSeverity.Debug);
                    }
                    RequestOutput output = WS.GenerateRequest(input);
                    HttpContextBase httpContext = new HccHttpContextWrapper(HttpContext.Current);
                    httpContext.Response.Redirect(output.URI);
                }
                catch (Exception ex)
                {
                    EventLog.LogEvent("PxPayGateway Checkout", "Exception occurred during call to Moneris: " + ex,
                        EventLogSeverity.Error);
                    context.Errors.Add(new WorkflowMessage("PxPay Gateway Checkout Error",
                       "Something went wrong. Please do try later.", true));
                    return false;
                }
            }

            return false;
        }
   }

и код Checkout.cs:

открытый частичный класс PxCheckout: BaseStoreController { приватная константная строка LiveUrl = "https://sec.paymentexpress.com/pxaccess/pxpay.aspx"; приватная константная строка DeveloperUrl = "https://uat.paymentexpress.com/pxaccess/pxpay.aspx";

        [NonCacheableResponseFilter]
        public ActionResult Index()
        {
    }

Должен перейти в раздел перенаправления на успех / неудачу.

...