UI-当我从 Adyen(支付系统)重定向到我的应用程序时,路由器状态不起作用

UI-Router state doesn't work when I'm redirected to my app from Adyen (payment system)

我正在尝试让我的应用程序与 Adyen 支付系统一起使用。在某个时候,我将用户重定向到 Adyen 进行付款。当用户完成后,Adyen 重定向到提供的 return url。 Adyen 还向 url 添加了一些查询参数,这些参数在 return url 页面上很有用。

这是 Adyen 在付款后重定向到的 url 示例: http://my.domain/#/payment/result?authResult=AUTHORISED&merchantReference=000220-16402-1459625180&merchantSig=BjeKwBOp70hcsNRD8GUat3fHn4qXxX4Bb2Nxg9RRa04%3D&paymentMethod=mc&pspReference=8614596253051402&shopperLocale=en_GB&skinCode=wMrD9Eei

现在,我想使用 UI-Router 将我带到正确的页面,并加载正确的控制器。根据查询参数 authResult 中的值,我想进入不同的状态。我为 /payment/result?authResult:

创建了一个状态
$stateProvider.state('payment.result', {
    url: '/payment/result?authResult',
    templateUrl: IM_APP_DIR + '/views/payment.result.html',
    controller: function($state, $stateParams) {
        switch ($stateParams.authResult) {
            case 'AUTHORISED':
                $state.go('payment.authorised');
                break;
            case 'CANCELLED':
                $state.go('payment.cancelled');
                break;
            etcetera...
        }
    }
});

授权状态示例:

.state('payment.authorised', {
    url: '/payment/authorised',
    templateUrl: IM_APP_DIR + '/views/payment.authorised.html,
    controller: 'PaymentCtrl'
})

现在,当我对此进行测试并且 Adyen 测试环境重定向到上面提到的 url 时,从未进入 /payment/result?authResult 状态的控制器。 (我在定义开关的行放置了一个断点,但 Chrome 永远不会到达那里。)相反,我在控制台中从 angular 得到了很多错误。他们主要说我进入了一个无限摘要循环 (https://docs.angularjs.org/error/$rootScope/infdig?p0=10&p1=%5B%5D)。我想这与这个问题无关,因为这也是 Adyen 重定向到 return url 并且我还没有为重定向路径定义任何状态时发生的情况。

考虑到重定向 url,我定义的状态可能有什么问题?

非常感谢您的帮助!

好的,我终于让它工作了。问题是我在路由配置中的 parent > child 设置完全错误。我还省略了子视图可以呈现到的父路由中的 ui-view 指令元素。