云EC電商系統(tǒng)是一套基于PHP+MYSQL的開源電商系統(tǒng)軟件,他是免費(fèi)的開源的,使用范圍廣泛,小編對他還是比較熟悉的,今天小編就來分享一下如何進(jìn)行二次開發(fā)。以替換短信接口為例,一步一步教大家開發(fā)過程,我們短信寶短信群發(fā)平臺非常穩(wěn)定,發(fā)送速度快,注冊就送您免費(fèi)測試短信,大家可以在短信寶注冊一個帳號,進(jìn)行測試。
首先我們先替換一下后臺的顯示界面,打開模版文件,項(xiàng)目/view/admin/message.sms.html文件,替換16~21行、49行,代碼如下:
1
2
3
4
5
6
|
< div id = "mainnav" class = "tabhd" > < ul > < li class = "cur" >< a href = "javascript:void(0);" title = "" >短信寶</ a ></ li > < li >< a href = "javascript:void(0);" title = "" >待接入</ a ></ li > </ ul > </ div > |
1
|
< input name = "code" type = "hidden" value = "smsbao" > |
經(jīng)過替換后所有的顯示已經(jīng)變成短信寶的了,我們在項(xiàng)目/inc/module/下建一個smsbao_install.php文件,這個是安裝短信寶的文件,代碼如下:
1
2
3
4
5
6
7
8
9
|
<?php if (!defined( 'in_mx' )) { exit ( 'Access Denied' );} $db = dbc(); global $db ; $res = $db ->insert( 'sms_config' , array ( 'code' => 'smsbao' , 'name' => '短信寶' , 'signname' => '云EC' , 'config' => '{"appkey":"","secretKey":"","reg":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","login":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","updatepwd":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","setpaypwd":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","changemobile":"${product},\u60a8\u7684\u9a8c\u8bc1\u7801\u4e3a\uff1a${code}\u6253\u6b7b\u4e5f\u4e0d\u80fd\u544a\u8bc9\u522b\u4eba\u54e6","order":"\u606d\u559c\u4f60\u4e0b\u5355\u6210\u529f\uff0c\u8ba2\u5355\u53f7\u4e3a\uff1a${order_sn},\u795d\u4f60\u8d2d\u7269\u6109\u5feb\uff01"}' , 'status' =>1)); if ( $res ){ echo '短信寶插件安裝成功,請刪除inc/module/smsbao_install.php文件' ;} else { echo '安裝失敗,請咨詢短信寶客服' ;} exit (); ?> |
接下來我們進(jìn)行替換發(fā)送短信業(yè)務(wù)的代碼,我們在項(xiàng)目/inc/plugin/sms/建立一個smsbao的文件夾,在這個文件夾中建立一個smsbao.php文件,這個文件是發(fā)送短信的業(yè)務(wù)文件,代碼如下:
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
|
<?php if (!defined( 'in_mx' )) { exit ( 'Access Denied' );} date_default_timezone_set( 'Asia/Shanghai' ); $sms_mod = array (); $sms_mod [ 'code' ] = "smsbao" ; //代碼 $sms_mod [ 'name' ] = '短信寶' ; //名稱 $sms_mod [ 'config' ] = json_encode( array ( 'appkey' => '' , 'secretKey' => '' , 'reg' => '' , 'login' => '' , 'updatepwd' => '' , 'setpaypwd' => '' , 'changemobile' => '' )); //配置信息 $sms_param = array ( array ( 'name' => 'smsconfig_appkey' , 'value' => 'appkey' , 'type' => 'text' , 'desc' => "短信寶用戶名,還沒有短信寶賬戶?點(diǎn)擊馬上<a href='http://www.gjrencai.com' target='_blank'>免費(fèi)注冊</a>" ), array ( 'name' => 'smsconfig_secretKey' , 'value' => 'secretKey' , 'type' => 'text' , 'desc' => '短信寶密碼' ), array ( 'name' => 'smsconfig_reg' , 'value' => '注冊模板' , 'type' => 'text' , 'desc' => '' ), array ( 'name' => 'smsconfig_login' , 'value' => '登錄模板' , 'type' => 'text' , 'desc' => '' ), array ( 'name' => 'smsconfig_updatepwd' , 'value' => '修改密碼模板' , 'type' => 'text' , 'desc' => '' ), array ( 'name' => 'smsconfig_setpaypwd' , 'value' => '設(shè)置支付密碼模板' , 'type' => 'text' , 'desc' => '' ), array ( 'name' => 'smsconfig_changemobile' , 'value' => '更改手機(jī)號碼模板' , 'type' => 'text' , 'desc' => '' ), array ( 'name' => 'smsconfig_order' , 'value' => '訂單提醒模板' , 'type' => 'text' , 'desc' => '有新訂單時,短信提醒' ), ); function sendsms( $recNum , $appkey , $secretKey , $signName = '' , $param = '' , $tplcode = '' , $extend = '' , $sms_type = 'code' ) { $pa [ 'u' ] = $appkey ; $pa [ 'p' ] = md5( $secretKey ); $pa [ 'm' ] = $recNum ; $tpl = $tplcode ; $param =json_decode( $param ); foreach ( $param as $key => $val ){ if ( strpos ( $tpl , $key )){ $tpl = str_replace ( '${' . $key . '}' , $val , $tpl ); } } $pa [ 'c' ] = "【" . $signName . "】" . $tpl ; $data = array ( 'err' => '' ); if ( $ret != '0' ){ return $data [ 'err' ]=getResult( $ret ); } } /** * 發(fā)送http請求 * @access protected * @param string $url 請求地址 * @param string $param get方式請求內(nèi)容,數(shù)組形式,post方式時無效 * * @param string $data post請求方式時的內(nèi)容,get方式時無效 * @param string $method 請求方式,默認(rèn)get */ function http( $url , $param , $data = '' , $method = 'GET' ){ $opts = array ( CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, ); /* 根據(jù)請求類型設(shè)置特定參數(shù) */ $opts [CURLOPT_URL] = $url . '?' . http_build_query( $param ); if ( strtoupper ( $method ) == 'POST' ){ $opts [CURLOPT_POST] = 1; $opts [CURLOPT_POSTFIELDS] = $data ; if ( is_string ( $data )){ //發(fā)送JSON數(shù)據(jù) $opts [CURLOPT_HTTPHEADER] = array ( 'Content-Type: application/json; charset=utf-8' , 'Content-Length: ' . strlen ( $data ), ); } } /* 初始化并執(zhí)行curl請求 */ $ch = curl_init(); curl_setopt_array( $ch , $opts ); $data = curl_exec( $ch ); $error = curl_error( $ch ); curl_close( $ch ); //發(fā)生錯誤,拋出異常 if ( $error ) throw new \Exception( '請求發(fā)生錯誤:' . $error ); return $data ; } function getResult( $key ){ $rst [ '30' ] = '密碼錯誤' ; $rst [ '40' ] = '賬號不存在' ; $rst [ '41' ] = '余額不足' ; $rst [ '42' ] = '帳號過期' ; $rst [ '43' ] = 'IP地址限制' ; $rst [ '50' ] = '內(nèi)容含有敏感詞' ; $rst [ '51' ] = '手機(jī)號碼不正確' ; return $rst [ $key ]; } ?> |
接下來我們修改一下調(diào)用接口的文件,在項(xiàng)目/inc/admin_inc/page/message.sms.php文件,修改第6行左右,代碼如下:
1
|
$code = $code == '' ? 'smsbao' : $code ; |
在項(xiàng)目/inc/lib/sms.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
|
public function __construct( $sms_sp = '' ) { global $ym_sms_sp ; $sms_sp = 'smsbao' ; $ym_val =get_cache( 'sms' , cache_static, $sms_sp ); $this ->sms_config = $ym_val ; require plugin. 'sms/' . $sms_sp . '/' . $sms_sp . '.php' ; } /**發(fā)送短信通知提醒*/ function sms_notice( $mobile , $type , $param = array ()) { global $ym_notice_mobile ; switch ( $type ) { case 'order' : //下訂單通知商家 $tpl_type = 'order' ; $mobile = $ym_notice_mobile ; break ; default : $param = '' ; break ; } return sendsms_patch( $mobile , $tpl_type , json_encode( $param ,true)); } |
好了,經(jīng)過以上的替換,短信寶的短信平臺已經(jīng)替換成功了,可以正常使用了。最后我們進(jìn)行發(fā)送測試。
報(bào)備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,并且免審核了,短信內(nèi)容3~5秒就可送達(dá)。
最新更新
電商類
CMS類
微信類