如何在Magento 2中创建申博娱乐方式
如何在Magento 2中创建申博娱乐方式

如何在Magento 2中创建申博娱乐方式

2018年3月27日发布 in 发展历程
如何在Magento 2中构建主题
2018年3月6日
对广告评级和SERP的影响’ real estate
2018年5月11日

有时,您可能需要的不仅仅是标准的现成申博娱乐方式。也许您已与信用卡处理商达成协议,但没有针对其平台的解决方案。也许您需要在结帐流程中插入特定的逻辑以支持ERP。通过构建自定义申博娱乐方式,您将能够自定义用户在结帐时将与之交互的字段,并高度自定义用于实现申博娱乐方式的API逻辑。

作为示例,我们将研究信用卡处理器没有适用于Magento 2的解决方案的情况。因此,我们将研究如何在Magento 2中添加基于信用卡的申博娱乐方式。后端和前端更改,以使申博娱乐方式正常工作,以及我们可以依赖本机Magento逻辑的地方。 (除非另有说明,否则以下所有代码示例和文件路径将相对于名为ClassyLlama_LlamaCoin的新Magento模块。有关此处的代码的详细示例,您可以参考 这个GitHub

新申博娱乐方式的基础

组态

First, 在 our 新 module we’ll need to add 配置 uration settings 对于 our 申博娱乐 方法 . For a custom 申博娱乐 方法 , you will likely have many additional 配置 uration settings, but 这里 we’re 上 ly going to add a few very basic settings. We will need an “enabled” setting, a 标题 to display 对于 our 申博娱乐 方法 , and a setting 对于 which 信用 卡 类型 s we will accept. These will be added 在 etc/adminhtml/system.xml. These 领域 s, 活性, 标题, and cctypes , are used by 的 core 类 es we’re 延伸 在 g so make sure to match 的 领域 ID s exactly. Additionally, it’s important to make sure 的 se 领域 s are added 在 的 申博娱乐 配置 命名空间 as Magento references 这个 命名空间 when loading 配置 uration 领域 s.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<? XML文件 ="1.0"?>
< 配置 XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" si :noNamespaceSchemaLocation=“ urn:magento:module:Magento_Config:etc / 系统 _file.xsd”>
    < 系统 >
        < 部分 ID =“申博娱乐”>
            < ID =“ 类 yllama_llamacoin” 翻译="标签 comment" 类型 = “文本” 排序="50" showInDefault="1" showInWebsite="1" showInStore="1">
                <标签> 骆驼 硬币 </标签>
                < 领域 ID ="活性" 翻译="标签" 类型 =“选择” 排序="1" showInDefault="1" showInWebsite="1" showInStore="0">
                    <标签>已启用</标签>
                    <source_model>Magento\ 设定档 \ 模型 \ 设定档 \ 资源 \ 是的 </source_model>
                </ 领域 >
                < 领域 ID ="标题" 翻译="标签" 类型 = “文本” 排序="30" showInDefault="1" showInWebsite="1" showInStore="1">
                    <标签>标题</标签>
                </ 领域 >
                < 领域 ID =“ cctypes ” 翻译="标签" 类型 =“多选” 排序="65" showInDefault="1" showInWebsite="1" showInStore="0">
                    <标签> 信用 种类 </标签>
                    <source_model>Magento\申博娱乐\ 模型 \ 资源 \ 抄送 type </source_model>
                </ 领域 >
            </>
        </ 部分 >
    </ 系统 >
</ 配置 >
 

Now we can 定义 默认 values 对于 的 配置 uration settings we created. Create a 新 file 在 的 etc folder 名称 d 配置 .xml and 定义 your values. There’s an additional 领域 that has been added that we didn’t 定义 在 的 系统 .xml file: 的 领域 模型. This 领域 定义 s 的 申博娱乐 方法 模型 对于 our 申博娱乐 方法 .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? XML文件 ="1.0"?>
< 配置 XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" si :noNamespaceSchemaLocation=“ ur:magento:模块:Magento_Store:etc / 配置 .xsd”>
    < 默认 >
        <申博娱乐>
            < 类 yllama_llamacoin>
              <标题> 骆驼 硬币 </标题>
              <模型>优雅的骆马\骆驼币\ 模型 \骆驼币</模型>
              <活性>1</活性>
              < cctypes > 自动曝光 ,, MC , DI </ cctypes >
            </ 类 yllama_llamacoin>
        </申博娱乐>
    </ 默认 >
</ 配置 >
 

申博娱乐方式

Since 的 配置 .xml file tells Magento where to find our 申博娱乐 模型 类 , we want to make sure 这个 类 is created: 模型 \LlamaCoin. This 类 is where 的 main logic that processes 的 申博娱乐 在 formation is found. The core Magento 类 定义 s 一些 方法 s that we will want to implement 在 our 类 : 授权 and 捕获 . (There are 一些 other 方法 s 定义 d, like void, but we won’t be implementing 的 m 在 这个 example.) Your 申博娱乐 模型 must 延伸 \Magento\Payment\Model\Method\AbstractMethod; 如果 you’re creating a 信用 卡 方法 , though, you’ll probably want to 延伸 \Magento\Payment\Model\Method\Cc, which provides helpful logic 在 的 validate 方法 . We’ll come back to 这个 模型 and fill it 在 later.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? 的PHP
命名空间 优雅的骆马\骆驼币\ 模型 ;
 
骆驼币 延伸 \Magento\申博娱乐\ 模型 \ 方法 \ 抄送
{
     上市 功能 捕获 (\Magento\申博娱乐\ 模型 \信息接口 $申博娱乐, $)
    {
        //稍后添加功能
    }
 
     上市 功能 授权(\Magento\申博娱乐\ 模型 \信息接口 $申博娱乐, $)
    {
        //稍后添加功能
    }
}
 

After creating 的 系统 .xml and 配置 .xml files and defining 的 base 类 对于 our 申博娱乐 方法 , we can now see our 配置 uration settings 在 的 admin. (Found at Stores > 组态 > Sales > 申博娱乐 方法 s)

访问配置数据

On 的 frontend, we’ll need to give 的 checkout 在 terface access to our 申博娱乐 方法 ’s 配置 uration 领域 s. To provide 这个 在 formation, we must 定义 a PHP provider 类 . Magento will use 这个 provider 类 to store all 的 checkout-related 配置 uration 在 的 window.checkoutConfig Java脚本 object. The provider we create will need to implement 的 \Magento\Checkout\Model\ConfigProviderInterface 在 terface and use 的 getConfig 方法 to 返回 的 数据 we 配置 ured. However, Magento has built a generic 类 , \Magento\Payment\Model\CcGenericConfigProvider, that implements 这个 required 在 terface and additionally goes through all 的 available 申博娱乐 方法 s and gathers all 的 配置 uration 领域 s we’ll need. This means we can simply 在 ject our 申博娱乐 方法 在 to 这个 抄送 GenericConfigProvider and it will load our 数据 to 的 window.checkoutConfig object. Create a 新 file etc/frontend/di.xml and add our 申博娱乐 方法 code as an 论据.

1
2
3
4
5
6
7
8
9
10
11
<? XML文件 ="1.0"?>
< 配置 XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" si :noNamespaceSchemaLocation=“ ur:magento:框架:ObjectManager / etc / 配置 .xsd”>
    < 类型 名称 =“ Magento \申博娱乐\模型\ 抄送 GenericConfigProvider”>
        <论点>
            <论据 名称 =“ 方法 Codes” si : 类型 =“数组”>
                < 项目 名称 =“ 类 yllama_llamacoin” si : 类型 =“ const ”>优雅的骆马\骆驼币\ 模型 \骆驼币 :: </ 项目 >
            </论据>
        </论点>
    </ 类型 >
</ 配置 >
 

我们已经建立了自定义申博娱乐方式的基础,并且前端将能够访问我们的数据,因此现在我们可以在前端显示申博娱乐方式。

在结帐时显示新申博娱乐

我们正在添加一种使用信用卡申博娱乐的申博娱乐方式。由于Magento本身具有使用信用卡模板的多种申博娱乐方式,因此我们可以利用多种核心模板来呈现我们的申博娱乐方式。

Java脚本

There are two important JS files to add: 的 申博娱乐 方法 renderer and 的 零件 that registers 的 renderer. The contents of 的 零件 file, 视图 /frontend/web/js/view/payment/llamacoin.js, are rather simple and 上 ly serve to add 的 renderer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
定义 ([
        'uiComponent',
        'Magento_Checkout / js / 模型 / 申博娱乐 / renderer-list'
    ],
    功能 (零件, rendererList) {
        “使用严格”;
 
        rendererList.(
            {
                 类型 : 'classyllama_llamacoin',
                零件: 'ClassyLlama_LlamaCoin / js / 视图 / 申博娱乐 / 方法 -renderer / 骆马币'
            }
        );
 
        / **如果需要,在此处添加视图逻辑* /
         返回 零件. 延伸 ({});
    });
 

The file path of 的 renderer file is 视图 /frontend/web/js/view/payment/method-renderer/. This file handles 的 frontend logic specific to 的 新 申博娱乐 方法 : validation 上 的 形成 领域 s and accessor 方法 s 对于 的 Knockout 模板 数据 . In its simplest 形成 , 的 renderer 上 ly needs to 在 clude 的 path to 的 Knockout 模板, and 这个 renderer can depend 上 Magento_Checkout/js/view/payment/default. Since our 申博娱乐 方法 uses 信用 卡 领域 s, we can 延伸 Magento_Payment/js/view/payment/cc-form. This base JavaScript file (and its associated Knockout 模板, cc-form.html) provide a 形成 that contains 的 basic 领域 s and validation 对于 的 信用 卡 领域 s (number, date, 类型 , year, and csv). 通过 depending 上 的 se 形成 s, you can leverage a great deal of basic 功能ality and 的 n customize it to your needs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
定义 ([
        'jquery',
        'Magento_Payment / js / 视图 / 申博娱乐 / cc-form'
    ],
    功能 ($, 零件) {
        “使用严格”;
 
         返回 零件. 延伸 ({
            默认值: {
                模板: 'ClassyLlama_LlamaCoin /申博娱乐/ 骆马币'
            },
 
            语境 : 功能() {
                 返回 这个 ;
            },
 
             getCode : 功能() {
                 返回 'classyllama_llamacoin';
            },
 
            活跃: 功能() {
                 返回 真正;
            }
        });
    }
);
 

范本

The JS renderer uses Knockout to render 的 uiComponent. The 本机 模板s used 在 这个 rendering process are found 在 的 Magento_Payment/view/frontend/web/template/payment/ folder. But we’ll need to add 上 e 模板, effectively a wrapper around our 形成 , to contain a radio 纽扣 , 标题, and billing address 对于 our 申博娱乐 方法 . Create 的 新 模板 at /view/frontend/web/template/payment/llamacoin.html. In 这个 模板, we’re using Knockout to render 的 本机 信用 卡 形成 and a place to display 的 address. (This 新 模板 is heavily based off 的 本机 free.html 模板 在 的 location referenced above.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
< div =“申博娱乐方法” 数据 - 捆绑 =“ css:{'_ 活性':( getCode ()== isChecked())}”>
    < div =“申博娱乐方式标题字段选择”>
        < 输入 类型 = “无线电”
               名称 =“申博娱乐方法]”
               = “无线电”
               数据 - 捆绑 =“属性:{'id':getCode()},值:getCode(),已选中:isChecked,单击:selectPaymentMethod,可见:isRadioButtonVisible()” />
        <标签 数据 - 捆绑 =“属性:{'for':getCode()}” ="标签">
            < 跨度 数据 - 捆绑 =“文本:getTitle()”></ 跨度 >
        </标签>
    </ div >
    < div =“申博娱乐方式内容”>
        <! - KO 前言 : getRegion(“消息”) - >
        <! - KO 模板: getTemplate() - ><! - / KO - >
        <! - / KO - >
        < div =“申博娱乐方式计费地址”>
            <! - KO 前言 : $ 父母 .getRegion(getBillingAddressFormName()) - >
            <! - KO 模板: getTemplate() - ><! - / KO - >
            <! - / KO - >
        </ div >
 
        <! - 渲染 本机 信用 形成 . - >
        < 形成 = “形成” 数据 - 捆绑 =“属性:{'id':getCode()+'-form'}”>
            <! - KO 模板: “ Magento_Payment /申博娱乐/抄送表单” - ><! - / KO - >
        </ 形成 >
 
        < div =“结帐协议块”>
            <! - KO 前言 : $ 父母 .getRegion(“下单前”) - >
            <! - KO 模板: getTemplate() - ><! - / KO - >
            <! - / KO - >
        </ div >
 
        < div =“操作工具栏”>
            < div =“主”>
                < 纽扣 数据 - 角色 =“审阅保存”
                         类型 =“提交”
                         数据 - 捆绑 ="
                        attr:{title:$ t('Place Order')},
                        启用:(getCode()== isChecked()),
                        click: placeOrder,
                        CSS:{已禁用:!isPlaceOrderActionAllowed()}
                        "
                        =“动作主要结帐”
                        残障人士>
                    < 跨度 数据 - 捆绑 =“ i18n:“下订单”></ 跨度 >
                </ 纽扣 >
            </ div >
        </ div >
    </ div >
</ div >
 

If you need to customize 的 领域 s 上 的 信用 卡 形成 , simply copy 对于 ward 的 本机 cc-form.html file to your module, update 的 reference 在 your JavaScript renderer file, and make your changes to 的 新 模板.

布局

Finally, we need to tell Magento where to 在 clude 的 se JavaScript files. Create a 新 布局 file 视图 /frontend/layout/checkout_index_index.xml. (Sections of 的 file below have been 剩下 出 . For 的 entire file, 视图 checkout_index_index.xml 在 的 GitHub范例 我已经创建。)在此版式文件中,新的申博娱乐方式已在版式中注册,因此它将包含在结帐页面中。该XML文件包含对我们创建的JavaScript组件的引用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<? XML文件 ="1.0"?>
< XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" 布局 =“ 1列” si :noNamespaceSchemaLocation=“ urn:magento:framework:View / 布局 / etc / 页 _configuration.xsd”>
  < 身体 >
    <referenceBlock 名称 =“ checkout.root”>
      <论点>
        <! - ... 一些 节点 剩下 对于 可读性 ... - >
          <! - 合并 申博娱乐 方法 渲染 这里 - >
          < 项目 名称 =“孩子们” si : 类型 =“数组”>
            < 项目 名称 =“ 骆马币申博娱乐” si : 类型 =“数组”>
              < 项目 名称 =“零件” si : 类型 =“串”>优雅的骆马_LlamaCoin/ js / 视图 /申博娱乐/骆马币</ 项目 >
              < 项目 名称 =“方法” si : 类型 =“数组”>
                < 项目 名称 =“ 类 yllama_llamacoin” si : 类型 =“数组”>
                  < 项目 名称 =“ isBillingAddressRequired” si : 类型 =“布尔值”>真正</ 项目 >
                </ 项目 >
              </ 项目 >
            </ 项目 >
          </ 项目 >
          <! - ... 一些 节点 剩下 对于 可读性 ... - >
      </论点>
    </referenceBlock>
  </ 身体 >
</>
 

现在,我们的申博娱乐方式将成为结帐时的一种选择。

现在,为了使我们的申博娱乐方式生效,我们需要使用有关如何处理提交的数据的逻辑来更新我们的申博娱乐类别。

申博娱乐方式模型

Before our 申博娱乐 模型 骆驼币 can be used to process an order, we need to update a few properties: $_canCapture and $_canAuthorize. The 申博娱乐 abstract 方法 类 (\Magento\Payment\Model\Method\AbstractMethod) checks 的 se properties before calling 的 associated 方法 s 上 our 申博娱乐 模型 在 stance. Since we’ll be implementing a 捕获 and 授权 方法 , we will want to change 的 se properties to be 真正. If your 申博娱乐 方法 implements 方法 s 对于 voids, refunds, or partial 捕获 s, you’ll want to set 的 corresponding property 上 your 申博娱乐 方法 在 stance. Look through 的 AbstractMethod 类 to be familiar with all 的 available properties.

We’ll need 上 e more property: $_code. The value of 这个 property will be 的 申博娱乐 方法 code that we’re using: “classyllama_llamacoin”. The AbstractMethod 类 uses 这个 property 在 的 getCode 方法 which is called any time Magento needs to get 的 申博娱乐 模型 code. This means it’s important that 的 $_code property matches 的 部分 名称 we 定义 d 在 系统 .xml. This is used 一些 times, 上 e of which is to set and save 的 申博娱乐 方法 code 上 的 order object.

Now that 的 se properties are 在 place, we can look at 的 logic around how an order is processed. When an order is placed, 的 place 方法 在 的 \Magento\Sales\Model\Order\Payment 类 decides how to handle 的 申博娱乐. Several important steps happen during 这个 方法 :

  1. The place 方法 finds an 在 stance of our 申博娱乐 方法 模型.
  2. The 申博娱乐 is validated. This validation happens 在 的 validate 方法 上 的 申博娱乐 模型. Since we 延伸 ed 的 \Magento\Payment\Model\Method\Cc 类 , 这个 父母 类 is used to validate our 申博娱乐. To customize 的 validation logic, simply 定义 a validate 方法 在 your 申博娱乐 类 .
  3. 申博娱乐 Action. This 方法 determines how 的 申博娱乐 will be handled. 通过 默认 , 的 re are three actions 定义 d as const ants 上 \Magento\Payment\Model\Method\AbstractMethod: order, 授权, and 授权_capture. We’ll need to implement 的 getConfigPaymentAction 方法 在 our 类 and 返回 的 action we want to use. (This option can be made 配置 urable. The Authorize.Net module adds a source 模型 对于 申博娱乐 action to make it a 配置 urable 领域 )
  4. The 授权 and 捕获 方法 s are called. (See full 申博娱乐 模型 类 below.)
  5. 我们将使用两个API调用。一种是授权金额,另一种是获取金额。
  6. Two parameters are passed to 的 授权 and 捕获 方法 s. An 量 (the total price of 的 order) and a $payment object which implements 的 \Magento\Payment\Model\InfoInterface 在 terface. This $payment object will have all 数据 we need to reference set 上 it. (Credit 卡 数据 , address 在 fo, and order 数据 ) We can now build an array of 数据 to pass to 的 信用 卡 processor.
  7. makeCaptureRequest and makeAuthRequest have been implemented as placeholder 方法 s that 返回 test 数据 . In reality, 的 se 方法 s would be where you implement specific logic to reach 出 to 的 API of a 信用 卡 processor.
  8. The 捕获 方法 first checks to make sure an 授权 请求 has been successful. Once authorization and 捕获 happen, 的 status of 的 申博娱乐 is updated by setting setIsTransationClosed to 真正.
  9. After 的 授权 and 捕获 方法 s, Magento updates 的 order status and saves 的 申博娱乐 数据 to 的 数据 base. The order process is now complete!

这是申博娱乐方式模型的最终状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<? 的PHP
 
命名空间 优雅的骆马\骆驼币\ 模型 ;
 
骆驼币 延伸 \Magento\申博娱乐\ 模型 \ 方法 \ 抄送
{
     const = 'classyllama_llamacoin';
 
    受保护的 $ _码 = :: ;
 
    受保护的 $_canAuthorize = 真正;
    受保护的 $_canCapture = 真正;
 
     / **
     *获取申博娱乐。
     *
    * @param \ Magento \ 申博娱乐 \ 模型 \ 信息接口 $ 申博娱乐
    * @参数浮动$ 量
     * @返回$ 这个
     * /
     上市 功能 捕获 (\Magento\申博娱乐\ 模型 \信息接口 $申博娱乐, $)
    {
         尝试 {
            //检查申博娱乐是否已被授权
             如果 ( 一片空白 ($申博娱乐->getParentTransactionId())) {
                $ 这个 ->授权($申博娱乐, $);
            }
 
            //为API请求构建申博娱乐数据数组。
            $ 请求 = [
                'capture_amount' => $,
                //其他任何字段,API密钥等
            ];
 
            //向信用卡处理器发出API请求。
            $响应 = $ 这个 ->makeCaptureRequest($ 请求 );
 
            // todo处理响应
 
            //交易完成。
            $申博娱乐->setIsTransactionClosed(1);
 
        } 抓住 (\例外 $e) {
            $ 这个 -> 调试 ($申博娱乐->getData(), $e->getMessage());
        }
 
         返回 $ 这个 ;
    }
 
     / **
    *授权申博娱乐。
     *
    * @param \ Magento \ 申博娱乐 \ 模型 \ 信息接口 $ 申博娱乐
    * @参数浮动$ 量
     * @返回$ 这个
     * /
     上市 功能 授权(\Magento\申博娱乐\ 模型 \信息接口 $申博娱乐, $)
    {
         尝试 {
 
            ///建立用于API请求的申博娱乐数据数组。
            $ 请求 = [
                'cc_type' => $申博娱乐->getCcType(),
                “ cc_exp_month” => $申博娱乐->getCcExpMonth(),
                'cc_exp_year' => $申博娱乐->getCcExpYear(),
                'cc_number' => $申博娱乐->getCcNumberEnc(),
                '量' => $
            ];
 
            //检查申博娱乐是否已被授权
            $响应 = $ 这个 ->makeAuthRequest($ 请求 );
 
        } 抓住 (\例外 $e) {
            $ 这个 -> 调试 ($申博娱乐->getData(), $e->getMessage());
        }
 
         如果 ( isset ($响应['transactionID'])) {
            //成功的身份验证请求。
            //设置申博娱乐的交易ID,以便捕获请求知道发生了身份验证。
            $申博娱乐->setTransactionId($响应['transactionID']);
            $申博娱乐->setParentTransactionId($响应['transactionID']);
        }
 
        //处理尚未完成。
        $申博娱乐->setIsTransactionClosed(0);
 
         返回 $ 这个 ;
    }
 
     / **
    *将申博娱乐动作设置为authorize_and_capture
     *
     * @返回字符串
     * /
     上市 功能 getConfigPaymentAction()
    {
         返回 :: ACTION_AUTHORIZE_CAPTURE;
    }
 
     / **
    *处理授权请求的API调用的测试方法。
     *
     * @param $请求
     * @返回数组
    * @throws \ Magento \ 构架 \ 例外 \ LocalizedException
     * /
     上市 功能 makeAuthRequest($ 请求 )
    {
        $响应 = ['transactionId' => 123]; // toto为身份验证请求实现API调用。
 
         如果 (!$响应) {
             \Magento\构架\例外\LocalizedException( __ (“身份验证请求失败。”));
        }
 
         返回 $响应;
    }
 
     / **
    *处理捕获请求的API调用的测试方法。
     *
     * @param $请求
     * @返回数组
    * @throws \ Magento \ 构架 \ 例外 \ LocalizedException
     * /
     上市 功能 makeCaptureRequest($ 请求 )
    {
        $响应 = ['成功']; // todo为捕获请求实现API调用。
 
         如果 (!$响应) {
             \Magento\构架\例外\LocalizedException( __ (“捕获请求失败。”));
        }
 
         返回 $响应;
    }
}
 

结论

我们已经为Magento构建了一种自定义申博娱乐方式。我们建立了基础的后端配置设置和模型,然后添加了向客户显示申博娱乐方式所需的前端更改,然后添加了使模型处理申博娱乐数据的逻辑。本教程可以用作向Magento添加申博娱乐方式的基础。有许多方法可以建立在我们所做的基础上,以为商家及其客户提供最佳体验。

我已将本示例的所有代码添加到 这个GitHub。 (此示例是在Magento 2.2.2上构建和测试的。)此外,核心Magento代码中的Braintree和Authorize.Net模块提供了有关这些文件中的几个文件如何交互的出色示例。

15 评论 s

  1. 麦克风 说:

    我浏览本教程时,遇到了添加di.xml的部分时出现500错误。由于您正在使用ClassyLlama \ 骆驼币 \ 模型 \ 骆驼币 :: 码 对Magento \ 申博娱乐 \ 模型 \ 抄送 GenericConfigProvider进行覆盖,因此,由于Model类没有’还没有常量(您可以在末尾添加常量)。我补充说,这再次与整个世界保持了良好关系。

  2. 穆罕默德 说:

    谢谢

  3. 亚瑟·纳赛尔(Yasser Nasser) 说:

    你好,非常感谢,我正在寻找这个,但是我有一个问题,关于如何以及在何处可以添加银行的api以及如何处理银行发出的请求以及向银行发出的请求

  4. 周杰伦 说:

    你好,

    我正在使用捕获方法。当我在那里打印东西并退出时;

    我在那里什么也看不到,它重定向到checkout / cart。
    你能告诉我如何调试我的数据吗?

    我正在测试是否可以结帐/购物,请向我建议如何调试数据。

    公共功能捕获(\ Magento \ 申博娱乐 \ 模型 \ 信息接口 $ 申博娱乐,$ 量 )
    {
    回显$ 量 ;出口;
    }

  5. 各位好帖子,感谢您与社区分享!
    PD:我喜欢顶部的比特币图片-

  6. 朱利安 说:

    谢谢。我需要将客户重定向到处理器托管的申博娱乐页面。是否应该从此处重定向客户‘ClassyLlama \ 骆驼币 \ 模型 \还是来自另一个类或javascript文件?

  7. 纳西姆·B。 说:

    非常感谢,将逐步的模式总结为一个很好的例子只是为了使我们头脑清楚,这只是一个问题,您是否受到了magento随附的默认申博娱乐模块的启发?如果我检查它们,它将帮助我更快地走吗?和我一样’现在正在实施申博娱乐模块,但只有一个重定向到处理器网关的按钮。

  8. 拉蒙 说:

    使用3d安全怎么办?

  9. 德州牧场主 说:

    很棒的向导!如果不建议使用Cc,该怎么办?

  10. 兰基山 说:

    很好的解释

  11. 请注意,不建议使用这种创建申博娱乐方式的方法(从Cc类和AbstractMethod继承)(从Magento 2.0开始技术上已经取消),并且似乎可以在Magento 2.4中删除,该方法将在今年的某个时候发布。

    此Magento开发文档部分介绍了当前方法:
    //devdocs.magento.com/guides/v2.3/payments-integrations/base-integration/integration-intro.html

  12. 以色列圭多 说:

    我有那个错误“常量名称是预期的。”当我使用setup:upgrade时,您知道吗?

  13. 如何再提供一种申博娱乐方式?用同样的方法渲染js

  14. MagentoDev 说:

    嗨,克里斯!感谢您的指导。鉴于您现在已经在2.3中弃用了实现申博娱乐方式模型的方式,并且将来会删除该方式,是否有可能将其更新为2.3以使用DI / di.xml进行反映?

发表评论 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.

最近的帖子查看全部
2020年10月22日
通过 阿什莉·科利弗 商业见解, 优雅的骆马 2020年10月22日
毫无疑问,2020年是历史性的一年。火灾,全球大流行,暴动,老虎王等’只是冰山一角。如 […]