精品深夜福利视频,日本中文字幕不卡,久久久久国产,av综合电影网站


待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-21:00

ECJIA到家短信插件開發

ECJia移動商城系統(EC+)是一款基于移動互聯網的商城應用服務產品,重新定義了移動商城系統操作方式及用戶體驗 ,讓用戶輕松將商城開到移動設備中,擁有執行效率高、上手輕松、管理便捷等一系列優點。只要是商城系統就必不可免的會用到短信,今天就教大家如何開發ECJIA到家系統的短信插件,短信接口使用的是我們短信寶短信群發平臺,我們短信寶短信群發平臺極其穩定,而且短信發送速度相當快捷,驗證碼和訂單通知在3~5秒就能收到,用戶體驗非常好,注冊就送測試短信。

接下來我就說一下開發步驟:第一步我們要清楚目錄格式,插件是放在content/plugins目錄下,我們首先在plugins文件夾下面建立一個文件夾,名字叫sms_smsbao,在sms_smsbao文件夾下面創建下列文件,languages文件夾、config.php文件、sms_smsbao.class.php文件、sms_smsbao.php文件、SMSbao.php文件。languages文件夾下面需要創建zh_CN文件夾,在zh_CN文件夾下面創建plugin.lang.php文件。文件創建完成之后可以正式開發了。

第二步:打開config.php文件,我們在這個文件中配置短信參數:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
 
return array(
    'sms_code'      => 'sms_smsbao',
    
    'check_balance' => true,
    
    'forms' => array(
       array('name' => 'app_key',           'type' => 'text',       'value' => ''),
       array('name' => 'app_secret',        'type' => 'text',       'value' => ''),
        array('name' => 'app_sign',        'type' => 'text',       'value' => '')
    ),
);

第三步:打開sms_smsbao.class.php文件,這個文件是加載短信寶短信插件的配置信息的。

?
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
<?php
 
defined('IN_ECJIA'or exit('No permission resources.');
 
use Ecjia\App\Sms\SmsAbstract;
 
class sms_smsbao extends SmsAbstract
{
    
    public function setConfig(array $config)
    {
        parent::setConfig($config);
        
        $this->setAgentConfig();
        
        $this->agent = royalcms('sms')->driver('smsbao');
    }
    
    public function setAgentConfig()
    {
        RC_Config::set('sms::sms.agents.smsbao.credentials', [
            'appKey' => $this->config['app_key'],
            'appSecret' => $this->config['app_secret'],
            'appsign' => $this->config['app_sign']
        ]);
    }
    
    
    /**
     * 獲取插件代號
     *  
     * @see \Ecjia\System\Plugin\PluginInterface::getCode()
     */
    public function getCode()
    {
        return $this->loadConfig('sms_code');
    }
 
    /** 
     * 加載配置文件
     
     * @see \Ecjia\System\Plugin\PluginInterface::loadConfig()
     */
    public function loadConfig($key = null, $default = null)
    {        
        return $this->loadPluginData(RC_Plugin::plugin_dir_path(__FILE__) . 'config.php'$key$default);
    }
 
    /** 
     * 加載語言包
     
     * @see \Ecjia\System\Plugin\PluginInterface::loadLanguage()
     */
    public function loadLanguage($key = null, $default = null)
    {
        $locale = RC_Config::get('system.locale');
        return $this->loadPluginData(RC_Plugin::plugin_dir_path(__FILE__) . '/languages/'.$locale.'/plugin.lang.php'$key$default);
    }
 
}

第四步:打開sms_smsbao.php文件,這個文件是作為安裝卸載及使用插件的文件。

?
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
<?php
 
/*
Plugin Name: 短信寶短信
Plugin URI: http://www.980247.com
Description: 使用短信寶短信渠道,發送驗證碼短信、訂單通知等。
Author: ECJIA TEAM
Version: 1.0.0
Author URI: http://www.ecjia.com/
Plugin App: sms
*/
defined('IN_ECJIA'or exit('No permission resources.');
class plugin_sms_smsbao {
 
    public static function install() {
        $config include(RC_Plugin::plugin_dir_path(__FILE__) . 'config.php');
        $param array('file' => __FILE__'config' => $config);
        return RC_Api::api('sms''plugin_install'$param);
    }
 
 
    public static function uninstall() {
        $config include(RC_Plugin::plugin_dir_path(__FILE__) . 'config.php');
        $param array('file' => __FILE__'config' => $config);
        return RC_Api::api('sms''plugin_uninstall'$param);
    }
 
    public static function royalcms_sms_agent_filter($factories) {
        require_once RC_Plugin::plugin_dir_path(__FILE__) . 'SMSbao.php';
        
        $factories['smsbao'] = 'SMSbao';
        return $factories;
    }
 
}
 
Ecjia_PluginManager::extend('sms_smsbao'function() {
    require_once RC_Plugin::plugin_dir_path(__FILE__) . 'sms_smsbao.class.php';
    return new sms_smsbao();
});
 
RC_Plugin::register_activation_hook(__FILE__array('plugin_sms_smsbao''install'));
RC_Plugin::register_deactivation_hook(__FILE__array('plugin_sms_smsbao''uninstall'));
RC_Hook::add_filter('royalcms_sms_agent_filter'array'plugin_sms_smsbao''royalcms_sms_agent_filter' ));

第五步:打開SMSbao.php文件,這個文件是短信發送的接口文件。

?
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
137
138
139
140
141
142
143
<?php
 
use Royalcms\Component\Support\Arr;
use Royalcms\Component\Sms\Sms;
use Royalcms\Component\Sms\Contracts\SmsAgent;
 
class SMSbao extends Sms implements SmsAgent
{
    
    const HOST      = 'http://api.smsbao.com/sms?';
   
    
    private $appKey;
    private $appSecret;
    private $appSign;
 
    private $statusStr array(
        "0" => "短信發送成功",
        "-1" => "參數不全",
        "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
        "30" => "密碼錯誤",
        "40" => "賬號不存在",
        "41" => "余額不足",
        "42" => "帳戶已過期",
        "43" => "IP地址限制",
        "50" => "內容含有敏感詞"
    );
    
    public function __construct($config)
    {
        $this->config = $config;
        $this->transformConfig();
    }
    
    public function transformConfig()
    {
        $credentials = Arr::pull($this->config, 'credentials');
        $this->appKey = Arr::pull($credentials'appKey');
        $this->appSecret = Arr::pull($credentials'appSecret');
        $this->appSign = Arr::pull($credentials'appsign');
    }
    
    protected function authParams()
    {
        return [
            'u'   => $this->appKey,
            'p'  => $this->appSecret,
            'k' =>  $this->appSign
        ];
    }
    
    /**
     * 發送信息
     
     * @see \Royalcms\Component\Sms\Contracts\SmsAgent::send()
     */
    public function send($mobile)
    {
        $url = self::HOST.'u='.$this->appKey.'&p='.md5($this->appSecret).'&m='.$mobile.'&c=【'.$this->appSign.'】'.$this->content;
       $ret file_get_contents($url);
       return $ret;
 
    }
    
    /**
     * 查詢賬戶余額
     */
    public function balance()
    {
        $url 'http://api.smsbao.com/query?u='.$this->appKey.'&p='.md5($this->appSecret);
 
 
        $ret file_get_contents($url);
       $rest explode(",",$ret);
        $res['data']['num'] = $rest['1'];
        return $res;
        
        
        
    }
    
    /**
     * @param $url
     * @param array $body
     * @return array $result
     * @return int $result[].code 返回0則成功,返回其它則錯誤
     * @return string $result[].msg 返回消息
     * @return string $result[].raw 接口返回的原生信息
     * @return array $result[].data 數據信息
     */
    public function httpRequest($urlarray $body)
    {
        $data = [
            'body' => $body
        ];
        
        $response $this->sendWithRetry($url$data);
 
        $result $this->transformerResponse($response);
    
        return $result;
    }
    
    /**
     * 轉換返回的信息處理
     * @param array $response
     * @return array $result
     * @return int $result[].code 返回0則成功,返回其它則錯誤
     * @return string $result[].msg 返回消息
     * @return string $result[].raw 接口返回的原生信息
     * @return array $result[].data 數據信息
     */
    public function transformerResponse($response)
    {
        $body $response['body'];
        $result_arr = RC_Xml::to_array($body);
 
        $data array();
        
        if (isset($result_arr['smsid'])) {
            $data['smsid'] = $result_arr['smsid'][0];
            $data['msgid'] = $result_arr['smsid'][0];
        }
        
        if (isset($result_arr['num'])) {
            $data['num']   = $result_arr['num'][0];
        }
         
        $result = [
            'raw' => $body,
            'data' => $data,
            'code' => $result_arr['code'][0],
            'description' => $result_arr['msg'][0],
        ];
        
        if ($result['code'] != '2') {
            return new ecjia_error('ihuyi_error_'.$result['code'], $result['description'], $result);
        }
        
        return $result;
    }
    
}

第六步:找到項目/wendor/royalcms/sms/config/sms.php,在agents中添加

?
1
2
3
4
5
6
7
8
 'smsbao' => [
            'credentials' => [
                'appKey' => env('SMSBAO_APPKEY'),
                'appSecret' => env('SMSBAO_APPSECRET'),
                'appsign' => env('SMSBAO_APPSIGN')
            ],
            'executableFile' => 'SMSbao',
        ],

第七步:在項目/vendor/royalcms/sms/Royalcms/Component/Sms/Agents下新建一個文件,取名為SMSbao.php。

?
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?php
 
namespace Royalcms\Component\Sms\Agents;
 
use Royalcms\Component\Support\Arr;
use Royalcms\Component\Sms\Sms;
use Royalcms\Component\Sms\Contracts\SmsAgent;
 
class SMSbao extends Sms implements SmsAgent
{
    
    const HOST      = 'http://api.smsbao.com/sms?';
   
    
    private $appKey;
    private $appSecret;
    private $appSign;
 
    private $statusStr array(
        "0" => "短信發送成功",
        "-1" => "參數不全",
        "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
        "30" => "密碼錯誤",
        "40" => "賬號不存在",
        "41" => "余額不足",
        "42" => "帳戶已過期",
        "43" => "IP地址限制",
        "50" => "內容含有敏感詞"
    );
    
    public function __construct($config)
    {
        $this->config = $config;
        $this->transformConfig();
    }
    
    public function transformConfig()
    {
        $credentials = Arr::pull($this->config, 'credentials');
        $this->appKey = Arr::pull($credentials'appKey');
        $this->appSecret = Arr::pull($credentials'appSecret');
    }
    
    protected function authParams()
    {
        return [
            'u'   => $this->appKey,
            'p'  => $this->appSecret,
            'k' =>  $this->appSign
        ];
    }
    
    /**
     * 發送信息
     
     * @see \Royalcms\Component\Sms\Contracts\SmsAgent::send()
     */
    public function send($mobile)
    {
        $url = self::HOST;
        $requestParams array(
            'content' => $this->content,
            'mobile' => $mobile,
        );
 
        $requestParams array_merge($this->authParams(), $requestParams);
 
        return $this->httpRequest($url$requestParams);
    }
    
    /**
     * 查詢賬戶余額
     */
    public function balance()
    {
        $url 'http://api.smsbao.com/query?u='.$this->appKey.'&p='.md5($this->appSecret);
 
 
        $ret file_get_contents($url);
        $retArr = split("\n"$ret);
        $balanceArr = split(","$retArr[1]);
        $rest $retArr[0] == 0 ? $balanceArr[1] : $ret;
        return $rest;
        
        
        
    }
    
    /**
     * @param $url
     * @param array $body
     * @return array $result
     * @return int $result[].code 返回0則成功,返回其它則錯誤
     * @return string $result[].msg 返回消息
     * @return string $result[].raw 接口返回的原生信息
     * @return array $result[].data 數據信息
     */
    public function httpRequest($urlarray $body)
    {
        $data = [
            'body' => $body
        ];
        
        $response $this->sendWithRetry($url$data);
 
        $result $this->transformerResponse($response);
    
        return $result;
    }
    
    /**
     * 轉換返回的信息處理
     * @param array $response
     * @return array $result
     * @return int $result[].code 返回0則成功,返回其它則錯誤
     * @return string $result[].msg 返回消息
     * @return string $result[].raw 接口返回的原生信息
     * @return array $result[].data 數據信息
     */
    public function transformerResponse($response)
    {
        $body $response['body'];
        $result_arr = RC_Xml::to_array($body);
 
        $data array();
        
        if (isset($result_arr['smsid'])) {
            $data['smsid'] = $result_arr['smsid'][0];
            $data['msgid'] = $result_arr['smsid'][0];
        }
        
        if (isset($result_arr['num'])) {
            $data['num']   = $result_arr['num'][0];
        }
         
        $result = [
            'raw' => $body,
            'data' => $data,
            'code' => $result_arr['code'][0],
            'description' => $result_arr['msg'][0],
        ];
        
        if ($result['code'] != '2') {
            return new ecjia_error('ihuyi_error_'.$result['code'], $result['description'], $result);
        }
        
        return $result;
    }
    
}

經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。進行測試發送:


 

報備一下短信寶的VIP模版,這樣就可以走短信寶的優質通道,并且免審核了,短信內容3~5秒就可送達。
開源插件

最新更新

電商類

CMS類

微信類

文章標簽
精品深夜福利视频,日本中文字幕不卡,久久久久国产,av综合电影网站
米奇777超碰欧美日韩亚洲| 毛片不卡一区二区| 视频在线不卡免费观看| 欧美一级久久| 蜜桃视频一区二区| 欧美另类专区| 91精品一区二区三区综合| 在线看片国产福利你懂的| 卡一精品卡二卡三网站乱码| 国产精品亚洲欧美一级在线| 国产精品扒开腿做爽爽爽软件| 国产欧美高清视频在线| 久久精品xxxxx| 欧美性www| 国产精品黄色片| 久久99国产精品视频| 国产一区二区精品福利地址| 国产乱码午夜在线视频| 精品国产第一福利网站| 在线天堂中文资源最新版| 色一区二区三区| 日韩国产一区| 宅男在线一区| 日韩视频在线一区二区三区| 日韩一级精品| 亚洲欧美网站在线观看| 日韩高清二区| 精品国产一区二区三区2021| 中文字幕成在线观看| 91tv亚洲精品香蕉国产一区| 欧美搞黄网站| 香蕉久久久久久| 国产调教一区二区三区| 国产一区二区三区久久| 成人美女视频| 在线综合亚洲| 日韩avvvv在线播放| 久久永久免费| 久久亚洲在线| 蜜臀久久99精品久久久久久9 | 国产一区成人| 婷婷综合电影| 欧美国产小视频| 欧美在线91| 伊伊综合在线| 丝袜美腿亚洲色图| 美日韩一区二区三区| 国产字幕视频一区二区| 亚洲欧洲美洲国产香蕉| 成人影视亚洲图片在线| 中文亚洲欧美| 欧美国产不卡| 亚洲一区成人| 韩日一区二区| 亚洲深夜av| 精品亚洲a∨| 日韩在线卡一卡二| 国产一区二区三区四区大秀| 视频在线观看91| 国产第一亚洲| 9久re热视频在线精品| 日韩福利视频一区| 久久蜜桃精品| 国产精品一区二区av日韩在线| 91精品国产成人观看| 久久国产尿小便嘘嘘| 亚洲国产日韩欧美在线| 蜜桃精品视频| 日日夜夜免费精品视频| 欧洲av一区二区| 国产精品多人| 亚洲理论在线| 欧美日韩视频网站| 国产欧美日韩精品一区二区三区| 1024精品一区二区三区| 日韩高清成人在线| 亚洲美洲欧洲综合国产一区 | 国产一区二区三区四区大秀 | 亚洲精品激情| 精品捆绑调教一区二区三区| 欧美一区自拍| 噜噜噜久久亚洲精品国产品小说| 色综合狠狠操| 国产亚洲高清在线观看| 亚洲免费影视| 欧美不卡高清一区二区三区| 日韩二区在线观看| 黄页网站一区| 日韩在线看片| 久久久久伊人| 国产探花在线精品| 最近国产精品视频| 99在线精品免费视频九九视| 播放一区二区| 最新中文字幕在线播放| 麻豆一区二区三| 欧美日韩精品一区二区三区在线观看| 激情91久久| 香蕉国产精品| 99成人超碰| 激情视频网站在线播放色| 日韩精品中文字幕吗一区二区| 伊人精品一区| 日韩天堂在线| 成人三级高清视频在线看| 国产乱码精品一区二区三区亚洲人 | 国产盗摄——sm在线视频| 欧美久久一区二区三区| 免费观看在线综合| 99国产精品99久久久久久粉嫩| 中文字幕系列一区| 成人午夜网址| 精品中国亚洲| 精品一区二区三区视频在线播放 | 国产欧美亚洲精品a| 日本中文字幕一区二区| 久久99伊人| 国产一区二区精品| 亚洲精品一区二区在线看| 日韩电影二区| 日韩激情一区| 国产在线一区不卡| 高清一区二区| 日韩av有码| zzzwww在线看片免费| 国产伊人久久| 日本а中文在线天堂| av亚洲一区二区三区| 欧美+日本+国产+在线a∨观看| 亚洲一本视频| 一区三区视频| 国产亚洲毛片| 伊人久久亚洲| 日韩欧美另类中文字幕| 日本不卡一二三区黄网| 欧美亚洲二区| 国产精品久久久久久久久久齐齐| 国产日产精品_国产精品毛片 | 久久久久.com| 1024精品一区二区三区| 久久国产精品久久久久久电车 | 国产亚洲高清在线观看| 国产精品二区影院| 中文字幕色婷婷在线视频| 久久一区二区中文字幕| 激情综合网站| 亚洲一区有码| 日韩精品视频网站| 国产欧美一区二区精品久久久| 麻豆精品久久久| 蜜桃av.网站在线观看| 欧美日韩中文字幕一区二区三区| 亚洲大片在线| 在线免费观看亚洲| **爰片久久毛片| 国产一区二区三区久久 | 黄色aa久久| 欧美日韩三区| 亚洲一区二区三区四区电影| 69精品国产久热在线观看| 精品国产99| 国产一区欧美| 日韩成人av影视| 国产一区一一区高清不卡| 亚洲婷婷在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 精品一区毛片| 中文视频一区| 精品五月天堂| 九九综合九九| 久久精品999| 日韩精品dvd| 亚洲精品在线二区| 国产一区2区在线观看| 制服诱惑一区二区| 国产精品videosex极品| 欧洲亚洲一区二区三区| 免费久久99精品国产| 久久亚州av| 99pao成人国产永久免费视频 | 久久亚洲电影| 牛牛精品成人免费视频| 欧美成人午夜| 国产欧美日韩| 蜜桃视频在线观看一区二区| 国产精品xvideos88| 精品午夜久久| 精品视频91| 精品视频自拍| 中文字幕一区二区三区四区久久| 蜜臀久久99精品久久一区二区| 六月丁香综合| 欧美激情aⅴ一区二区三区| 久久久久中文| 久久国产欧美日韩精品| sm捆绑调教国产免费网站在线观看| 免费的成人av| 欧美日韩亚洲一区三区| 99久久久国产精品美女| 狠狠爱成人网|