91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国


待發短信

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

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: 短信寶短信
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類

微信類

文章標簽
91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国
成人av电影在线播放| 亚洲乱码国产乱码精品精的特点 | 亚洲专区一二三| 久久久久国产精品人| 91精品国产91久久综合桃花| 色妞www精品视频| 色域天天综合网| 国产成人免费av在线| 国产一区二区三区精品视频| 日韩在线一二三区| 蜜臀久久久久久久| 久久福利视频一区二区| 久久99精品久久久久婷婷| 另类专区欧美蜜桃臀第一页| 国产综合色产在线精品| 激情文学综合丁香| 国内精品免费**视频| 国产suv一区二区三区88区| 高清成人免费视频| 成人亚洲一区二区一| 欧美自拍丝袜亚洲| 国产成人综合视频| 免费观看成人av| 日韩欧美三级在线| 久久草av在线| 肉肉av福利一精品导航| 国产亚洲欧美日韩在线一区| 成人av电影在线网| 美女性感视频久久| 亚洲免费观看高清完整版在线观看熊 | 成人小视频免费观看| 亚洲香蕉伊在人在线观| www国产亚洲精品久久麻豆| 欧美午夜不卡在线观看免费| 国产精品亚洲第一区在线暖暖韩国 | 国产女同性恋一区二区| 欧美va亚洲va| 欧美日韩精品电影| 亚洲国产另类av| 国产女人18水真多18精品一级做 | 免费欧美高清视频| 一区二区不卡在线播放| 17c精品麻豆一区二区免费| 国产三区在线成人av| 日韩欧美久久一区| 精品国产一区二区三区久久影院| 欧美丰满美乳xxx高潮www| bt7086福利一区国产| 日本aⅴ精品一区二区三区| 亚洲午夜激情网页| 亚洲综合丁香婷婷六月香| 国产亚洲女人久久久久毛片| 国产精品欧美精品| 国产精品久久久久久久久果冻传媒 | 欧美亚洲愉拍一区二区| 欧美日韩美少妇| 欧美午夜电影网| 国产一区二区三区香蕉 | 国产天堂亚洲国产碰碰| 久久久久久久久久久久久久久99| 欧美一区二区三区在线观看| 欧美一区二区三区视频在线观看| 欧美日本精品一区二区三区| 欧美日韩国产综合一区二区| 国产精品资源网站| 日本成人在线一区| 激情综合网av| www.日韩av| 日本高清不卡在线观看| 欧美无人高清视频在线观看| 欧美精品久久99| 国产色产综合产在线视频| 国产欧美一区二区精品忘忧草 | 精品国产污网站| 国内久久婷婷综合| 日韩精品国产欧美| 国产精品无圣光一区二区| 日韩女优电影在线观看| 91精品国产全国免费观看| 不卡一区二区在线| 8v天堂国产在线一区二区| 日韩一级高清毛片| 亚洲国产成人在线| 亚洲精品网站在线观看| 亚洲国产精品久久久男人的天堂| 香蕉久久夜色精品国产使用方法 | 日本高清不卡aⅴ免费网站| 在线免费观看一区| 精品国产乱码久久久久久浪潮| 国产精品久久夜| 一区二区三区av电影| 黄网站免费久久| 欧美日韩久久不卡| 国产日韩欧美高清| 亚洲精选免费视频| 激情图区综合网| 色丁香久综合在线久综合在线观看| 欧美一a一片一级一片| 欧美成va人片在线观看| 亚洲精品国产成人久久av盗摄| 日韩va欧美va亚洲va久久| 成人三级伦理片| 欧美一级高清片| 亚洲综合色丁香婷婷六月图片| 奇米色777欧美一区二区| eeuss鲁片一区二区三区| 精品成人佐山爱一区二区| 成人免费在线观看入口| 麻豆精品在线观看| 欧美性受xxxx黑人xyx性爽| 国产精品丝袜久久久久久app| 日韩精品福利网| 91久久一区二区| 国产精品无人区| 亚洲一区二区视频在线观看| 久久综合九色综合久久久精品综合| 久久亚洲影视婷婷| 中文字幕欧美日韩一区| 亚洲午夜视频在线观看| 美女视频网站久久| 99久久国产综合色|国产精品| 4438亚洲最大| 亚洲精品在线三区| 久久成人av少妇免费| 久久久久久亚洲综合| 精品写真视频在线观看| 欧美性淫爽ww久久久久无| 精品久久99ma| 日韩激情视频在线观看| 91精品91久久久中77777| 国产精品毛片久久久久久| 激情综合网最新| 久久久久久麻豆| 国产一区二区三区香蕉| 日韩欧美区一区二| 五月婷婷激情综合网| 精品视频在线看| 亚洲蜜臀av乱码久久精品| www.欧美亚洲| 亚洲三级理论片| 色综合久久天天| 亚洲精品ww久久久久久p站| 韩国视频一区二区| 在线精品视频小说1| 亚洲乱码一区二区三区在线观看| 91丝袜国产在线播放| 亚洲精品国产一区二区精华液| 99re免费视频精品全部| 国产精品日日摸夜夜摸av| 成a人片亚洲日本久久| 亚洲欧美一区二区三区国产精品 | 国产精品久久久久久久久动漫| 成人性色生活片| 国产精品久久久久久亚洲伦| 91美女片黄在线观看| 亚洲二区在线观看| 538在线一区二区精品国产| 美女一区二区三区在线观看| 91精品国产麻豆| 国产精品大尺度| 欧美日韩一区精品| 蜜乳av一区二区三区| 日韩欧美高清dvd碟片| 国产一区二区三区综合| 中文无字幕一区二区三区| 亚洲一线二线三线视频| 不卡的av网站| 国产精品久久久久婷婷二区次| 欧美色网站导航| 狠狠狠色丁香婷婷综合激情| 欧美—级在线免费片| 色综合久久天天综合网| 久久se精品一区二区| 亚洲电影中文字幕在线观看| 精品国产电影一区二区| 色哟哟欧美精品| 一区二区视频在线看| 欧美一区二区成人| 成人黄色大片在线观看| 亚洲成人综合网站| 国产精品嫩草影院com| 日韩精品专区在线| 99综合电影在线视频| 国产精品综合久久| 日韩影院精彩在线| 亚洲免费观看高清在线观看| 日韩亚洲国产中文字幕欧美| 91电影在线观看| 成人av网址在线| 蜜桃av一区二区三区| 国产成人av一区二区三区在线| 中文字幕一区二区不卡| 欧美一区二区黄色| 欧美日韩综合不卡| aaa欧美色吧激情视频| 亚洲精品国产一区二区三区四区在线| 亚洲免费伊人电影| 久久久久国产精品免费免费搜索| 在线观看视频91| 欧洲国产伦久久久久久久|