我正在尝试集成SagePayMvc.dll
到一个 ASP.NET Web API 项目中,该项目需要ControllerContext.RequestContext
传递才能形成通知 URL。
目前我在实现这一点时遇到了一些困难,我需要ControllerContext.RequestContext
从这个 web api 控制器传递:
public class PaymentStartController : ApiController
{
private PaymentRepository paymentRepository = new PaymentRepository();
private SagePayHelper sagePayHelper = new SagePayHelper();
public Order MakePaymentInitial(Payment payment)
{
Order order = new Order();
order = sagePayHelper.MakePayment(payment, context);
paymentRepository.InsertVendorTXCode(order.VendorTxCode);
paymentRepository.InsertInitialPaymentDetails(order, payment);
return order;
}
}
我试图ControllerContext controllerContext = new ControllerContext()
在 SagePayHelper 实例化下方添加一个公共,然后随后添加var context = controllerContext.RequestContext
,这个问题内部RequestContext
的任何方法都没有被实例化,所以当 SagePayMvc 到达在IUrlResolver
接口内完成的构建通知 URL 的点时,会引发错误.
有没有一种ControllerContext.RequestContext
模拟的方法,我以前使用过 RhinoMocks 或者恢复到我之前在表单项目中实现 SagePayMvc 的方式会更谨慎(表单项目是一个 MVC 4 应用程序,它序列化并将表单数据发送到网络 API)。
任何建议将不胜感激。