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()
{
}
Должен перейти в раздел перенаправления на успех / неудачу.