首页 > 解决方案 > 如何在 Magento 2 中使支付插件安全

问题描述

我在网上看到很多教程,都停在

nameplugin-method.js

像采购订单离线默认插件支付:

形式:

<form id="purchaseorder-form" class="form form-purchase-order" data-role="purchaseorder-form">
    <fieldset class="fieldset payment method" data-bind='attr: {id: "payment_form_" + getCode()}'>
        <div class="field field-number required">
            <label for="po_number" class="label">
                <span><!-- ko i18n: 'Purchase Order Number'--><!-- /ko --></span>
            </label>
            <div class="control">
                <input type="text"
                       id="po_number"
                       name="payment[po_number]"
                       data-validate="{required:true}"
                       data-bind='
                                attr: {title: $t("Purchase Order Number")},
                                value: purchaseOrderNumber'
                       class="input-text"/>
            </div>
        </div>
    </fieldset>
</form>

javascript:

function (Component, $) {
    'use strict';
    return Component.extend({
        defaults: {
            template: 'Magento_OfflinePayments/payment/purchaseorder-form',
            purchaseOrderNumber: ''
        },
        initObservable: function () {
            this._super()
                .observe('purchaseOrderNumber');
            return this;
        },
        getData: function () {
            return {
                "method": this.item.method,
                'po_number': this.purchaseOrderNumber(),
                "additional_data": null
            };

        },
        validate: function () {
            var form = 'form[data-role=purchaseorder-form]';
            return $(form).validation() && $(form).validation('isValid');
        }
    });
}

考虑到安全性,我不会使用 javascript 进行支付集成,因为它可以在运行时更改。

所以,我必须在这个插件中制作类似AJAX的东西来调用另一个拥有所有订单信息的类。

怎么做?

Magento 2 官方文档没有提到这个主题。

标签: phpmagento2magento2.1

解决方案


推荐阅读