Adyen的安全字段不会呈现

时间:2018-12-09 23:24:36

标签: javascript iframe adyen

我正在尝试使用Adyen的安全字段来加密购物者的敏感数据 https://docs.adyen.com/developers/checkout/api-integration

应该在页面上将输入呈现为iframe,但出现以下错误。

iframe error

Libray嵌入 <head>

<script type="text/javascript" src="https://checkoutshopper-test.adyen.com/checkoutshopper/assets/js/sdk/checkoutSecuredFields.1.3.3.min.js"></script>

表格

<form class="flex-center position-ref h-100" action="{{ route('pay.credit') }}" method="post" id="adyen-encrypted-form">
            @csrf()
            @method('POST')

            <div class="cards-div">

                <div class="js-chckt-pm__pm-holder">
                    <input type="hidden" name="txvariant" value="card" />
                    {{--<div class="form-group">--}}
                        {{--<div class="form-control">--}}
                            <label>
                                <span class="input-field" data-cse="encryptedCardNumber"></span>
                            </label>
                        {{--</div>--}}
                    {{--</div>--}}
                    <div class="form-group">
                        <div class="form-control">
                            <label>
                                <span class="input-field" data-cse="encryptedExpiryMonth"></span>
                            </label>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="form-control">
                            <label>
                                <span class="input-field" data-cse="encryptedExpiryYear"></span>
                            </label>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="form-control">
                            <label>
                                <span class="input-field" data-cse="encryptedSecurityCode"></span>
                            </label>
                        </div>
                    </div>
                    <div id="pmHolder" class="js-chckt-pm__pm-holder">
                        <input type="hidden" name="txvariant" value="card">
                        <input type="hidden" name="encryptedCardNumber" id="card-encrypted-card" value="">
                        <input type="hidden" name="encryptedExpiryMonth" id="card-encrypted-month" value="">
                        <input type="hidden" name="encryptedExpiryYear" id="card-encrypted-year" value="">
                        <input type="hidden" name="encryptedSecurityCode" id="card-encrypted-code" value="">
                    </div>

                    <button type="submit" class="btn btn-success btn-lg btn-block">Pagar</button>
                </div>
            </div>

        </form>

位于 <body>

底部的原始键
<script type="text/javascript">
            var csfSetupObj = {
                rootNode: '.cards-div',
                configObject : {
                    originKey : "pub.v2.8015418815230181.aHR0cDovL2FkeWVuLmJldGE.KfETYJbalDv9FEZ04R8azVjBqUreC611yhD-ZFMwZKI0"
                }
            };
            var securedFields = csf(csfSetupObj);
        </script>

3 个答案:

答案 0 :(得分:2)

仅仅是因为我们也遇到了这个问题,

确保在生成originKey时输入的域上正在测试adyens脚本。

必须匹配这些脚本,脚本才能正常工作。如果要首先在本地进行测试,请像为luke_b建议的那样,在Adyen面板中仅为localhost:8080生成第二个originKey。

如果域和域不匹配,iframe将呈现,但它们不会出现(将显示:没有样式)

答案 1 :(得分:1)

伙计们,事实证明它实际上与代码无关。

在我的帐户面板中,我有这个CSE library disabled

解决此问题的最佳方法是与Adyen的支持部门联系或尝试经典的集成,您可以在其中进行本地托管。

答案 2 :(得分:0)

对我来说,我刚刚将本地开发域http://127.0.0.1:5000添加到了Allowed origins中的Customer Area