2013-03-16 5 views
2

리디렉션 로직과 함께 작동하는 결제 플러그인을 개발했습니다. 나는 가이드로 페이팔 표준과 MyGateVirtual을 사용했다. 내 문제는 사용자가 주문을 확인한 후 그가 신용 카드 데이터를 입력하는 paycenter 사이트로 리디렉션되고 paycenter 사이트가 성공 및 실패에 대해 지정된 URL의 Google 사이트로 돌아 오는 것입니다. 내 지불 컨트롤러의 성공 동작에서 어떤 이유로 결제가 수락되지 않으면 사용자를 주문 세부 사항으로 리디렉션하여 지불을 다시 제출할 수 있습니다. 나는nopcommerce 결제 플러그인

@{ var storeLocation = Nop.Core.Infrastructure.EngineContext.Current.Resolve<Nop.Core.IWebHelper>().GetStoreLocation() + Url.RouteUrl("OrderDetails", new {orderId = Model.OrderId});} 


<input type="button" name="orderdetails" value="@T("Account.CustomerOrders.OrderDetails")" id="orderdetails" class="orderdetailsbutton" onclick="setLocation('@(storeLocation)'" /> 

을 OrderDetails의로 사용자를 리디렉션하도록되어 버튼에 대해 다음의 코드와 뷰를 사용하지만 사용자가 버튼을 클릭하면 아무 반응이 없습니다. onclick 이벤트 핸들러가 orderdetails로 리디렉션하지 않습니다. 이 문제를 도와주세요

조지

답변

3

에서 setLocation()는 public.common.js에 정의 된 JS 기능입니다. 문제를 진단하려면 다음 단계를 따라야합니다.

  1. public.common.js가 페이지에 제대로 포함되어 있는지 확인하십시오.
  2. 'storeLocation'변수가 올바른 URL을 생성하는지 확인하십시오. 실제로는 앞 부분이 필요하지 않습니다. 이미 'Url.RouteUrl'로 시작하는 부분은 이미 자신의 사이트에 있기 때문에 가능합니다.
  3. 브라우저의 개발자 도구에서 중단 점을 설정하고 setLocation이 제대로 호출되는지 확인하고 그렇지 않은 경우 오류를 확인하십시오.

코드를 자세히 살펴보면 JS 코드의 형식이 올바르지 않은 것으로 나타났습니다 (괄호가 하나도 없음).

setLocation('@(storeLocation)' 
:

은 당신의 코드