我差不多为我正在建设的电子商务网站创建了一个WorldPay支付提供商插件。但是我遇到了一个我正在努力解决的问题。
我创建了一个WorldPay插件项目,它包含所有必需的类(即提供者,方法,控制器等)。我创建了一个PaymentForm.cshtml
文件来捕获WorldPay客户详细信息 - 它位于FastTrack.UI
插件文件夹下。
在WorldPayCheckoutPaymentGatewayMethod
中,我将属性[GatewayMethodUi("WorldPay.WorldPayCheckout")]
添加到了课程中,同样也添加了WorldPayPaymentController
和WorldPayPaymentController.PaymentForm
方法。
控制器获得了属性[PluginController("MerchelloWorldPay")]
,在FastTrackUi中我创建了区域MerchelloWorldPay 。在MerchelloWorldPay下,我有必要的js文件以及带有 PaymentForm.cshtml 文件的dialogs文件夹和WorldPayment文件夹。
在Umbraco后端,我已将WorldPay设置为所需的支付网关。现在,在前端客户可以选择WorldPay作为支付方式,然后点击下一步重定向到支付表单页面,该页面应显示WorldPay支付表格的paymentform.cshtml文件 - 后者不会发生!
注意WorldPayPaymentController
继承自CheckoutPaymentControllerBase
WorldPayCheckoutPaymentGatewayMethod
继承自RedirectPaymentMethodBase
当我调试CheckoutPaymentMethodControllerBase.ResolvePayment
时,我得到att = "WorldPay.WorldPayPayment"
,就像我为GatewayMethodUi
有人可以提供建议吗?
我上周在Umbraco Merchello论坛上发布了这个,但还没有得到答案。
答案 0 :(得分:0)
排序。这可能是显而易见的,但我花了几天时间弄明白。如果你正在构建像我这样的插件,在Merchello FastTrack.Ui项目中有ResolvePayment.cshtml文件,它在switch语句中检查GatewayMethodUiAttribute模型的Alias属性 - 你需要在那里添加你的GatewayMethodUi别名并将html.Action链接到你的payform 。测试我的worldpay插件的时间:))