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


待發短信

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

4001-021-502

工作時間

9:00-21:00

DBShopV3.3商城系統新增短信寶短信接口

DBShop企業級開源商城系統,使用PHP語言基于Laminas + Doctrine 2 組合框架開發完成。可定制、多終端、多場景、多支付、多貨幣;嚴謹的安全機制,可靠穩定;方便的操作管理,節約時間;清晰的權限分配,責任分明;便捷的更新處理,一鍵搞定;豐富的插件市場,擴展無限。小編帶著大家一起開發DBShopV3.3的短信寶插件接口。我們使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺非常穩定,發送速度快,注冊就送測試短信,推薦大家使用。
1.首先打開項目module\Admin\src\Data\Common.php 文件,在586行增加以下代碼

1
'smsbao'=> $translator->translate('短信寶'),

2.接著打開項目module\Admin\src\Service\Common\PhoneSms 目錄,增加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
<?php
 
namespace Admin\Service\Common\PhoneSms;
 
 
use Admin\Data\Common;
use Laminas\Json\Json;
 
class Smsbao
{
 
    private $sendUrl = ';
    private $smsConfig;
 
 
    /**
     * 設置短信
     * @param $smsConfig
     * @throws ClientException
     */
    public function setSmsConfig($smsConfig)
    {
        $this->smsConfig = $smsConfig;
    }
 
    /**
     * 發送短信
     * @param array $data
     * @return bool
     */
    public function sendPhoneSms(array $data)
    {
        $smsContent = $this->getSmsContent($data['typeCode'], $data['contentArray'], $data['templateCode']);
        if (empty($smsContent)) return;
        if (empty($data['phone'])) return;
        foreach ($data['phone'] as $phoneValue) {
            $this->sendSmsbao($phoneValue['number'], $smsContent);
        }
    }
 
    /**
     * 發送訂單短信
     * @param array $data
     * @return bool
     */
    public function sendOrderPhoneSms(array $data)
    {
        $smsContent = $this->getSmsContent($data['typeCode'], $data['contentArray'], $data['templateCode']);
        if (empty($smsContent)) return;
        if (empty($data['phone'])) return;
 
        foreach ($data['phone'] as $phoneValue) {
            $this->sendSmsbao($phoneValue['number'], $smsContent);
        }
    }
 
      /**
     * 發送短信方法
     * @param $phone
     * @param $content
     * @return array|bool|string|null
     */
    private function sendSmsbao($phone, $content)
    {
        $statusStr = array(
                "0" => "短信發送成功",
                "-1" => "參數不全",
                "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
                "30" => "密碼錯誤",
                "40" => "賬號不存在",
                "41" => "余額不足",
                "42" => "帳戶已過期",
                "43" => "IP地址限制",
                "50" => "內容含有敏感詞",
                "51" => "手機號碼不正確"
            );
 
        try {
            $user = $this->smsConfig['sms_id'];
            $pass = $this->smsConfig['sms_secret'];
            $content = '【'.$this->smsConfig['sms_sign_name'].'】'.$content;
            $sendurl = $this->sendUrl."u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
            $result = $this->curl_get($sendurl);
            return $statusStr[$result];
        catch (\Exception $e) {
            return null;
        }
 
        return null;
    }
 
     private function curl_get($sendurl){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $sendurl);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
 
 
 
      /**
     * 獲取短信內容
     * @param $type
     * @param $data
     * @param $templateCode
     * @return string
     */
    private function getSmsContent($type, $data, $templateCode)
    {
        $TemplateCodeContent = '';
        switch ($type) {
            case 'captcha':
                $TemplateCodeContent = str_replace('{code}', $data['phoneCaptcha'], $templateCode);
                break;
            case 'addOrder':
                $TemplateCodeContent = str_replace(['{buyName}''{orderSn}''{orderTotal}'], [$data['buyName'], $data['orderSn'], $data['orderTotal']], $templateCode);
                break;
            case 'cancelOrder':
                $TemplateCodeContent = str_replace(['{buyName}''{orderSn}''{orderTotal}'], [$data['buyName'], $data['orderSn'], $data['orderTotal']], $templateCode);
                break;
            case 'paymentOrder':
                $TemplateCodeContent = str_replace(['{buyName}''{orderSn}''{orderTotal}'], [$data['buyName'], $data['orderSn'], $data['orderTotal']], $templateCode);
                break;
            case 'shipOrder':
                $TemplateCodeContent = str_replace(['{buyName}''{orderSn}''{orderTotal}''{deliveryName}''{expressNumber}'], [$data['buyName'], $data['orderSn'], $data['orderTotal'], $data['deliveryName'], $data['expressNumber']], $templateCode);
                break;
            case 'receiptOrder':
                $TemplateCodeContent = str_replace(['{buyName}''{orderSn}''{orderTotal}''{deliveryName}''{expressNumber}'], [$data['buyName'], $data['orderSn'], $data['orderTotal'], $data['deliveryName'], $data['expressNumber']], $templateCode);
                break;
        }
 
        return $TemplateCodeContent;
    }
}

3.接著替換module\Admin\view\admin\message-notification\index.phtml 文件

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
151
152
153
154
155
156
157
<div class="content-wrapper">
    <?php
    $form = $this->form;
    $form->prepare();
    ?>
    <?php echo $this->form()->openTag($form); ?>
    <section class="content-header">
        <?php echo $this->partial('layout/breadcrumb'); ?>
 
        <h1 class="pull-right" id="dbshop-menu-top">
            <button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-check"></i> <?php echo $this->translate('保存設置'); ?></button>
            <?php echo $this->HelpUrl('phoneMessage'); ?>
        </h1>
    </section>
 
    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <div class="nav-tabs-custom">
                    <ul class="nav nav-tabs">
                        <li class="active"><a href="#tab_1" data-toggle="tab"><?php echo $this->translate('管理員提醒'); ?></a></li>
                        <li><a href="#tab_2" data-toggle="tab"><?php echo $this->translate('訂單提醒'); ?></a></li>
                        <li><a href="#tab_3" data-toggle="tab"><?php echo $this->translate('其他提醒'); ?></a></li>
                    </ul>
                    <div class="tab-content">
                        <?php echo $this->partial('layout/messages'); ?>
                        <div class="tab-pane active" id="tab_1">
                            <div class="box-body">
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('管理員手機號碼'); ?></label>
                                    <?php if(count($this->phoneArea) == 1) { ?>
                                        <div class="col-sm-3">
                                            <?php echo $this->formElement($form->get('areaCode')); ?>
                                            <?php echo $this->formElementErrors($form->get('areaCode'), ['class'=>'error-message']); ?>
                                            <?php echo $this->formElement($form->get('adminPhone')); ?>
                                            <?php echo $this->formElementErrors($form->get('adminPhone'), ['class'=>'error-message']); ?>
                                        </div>
                                    <?php } else { ?>
                                        <div class="col-sm-2">
                                            <?php echo $this->formElement($form->get('areaCode')); ?>
                                            <?php echo $this->formElementErrors($form->get('areaCode'), ['class'=>'error-message']); ?>
                                        </div>
                                        <div class="col-sm-3">
                                            <?php echo $this->formElement($form->get('adminPhone')); ?>
                                            <?php echo $this->formElementErrors($form->get('adminPhone'), ['class'=>'error-message']); ?>
                                        </div>
                                    <?php } ?>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('接收短信'); ?></label>
                                    <div class="col-sm-6">
                                        <?php echo $this->formElement($form->get('adminPhoneSend')); ?>
                                        <?php echo $this->formElementErrors($form->get('adminPhoneSend'), ['class'=>'error-message']); ?>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="tab-pane" id="tab_2">
                            <div class="box-body">
                                <div class="alert alert-info alert-dismissible">
                                    <?php if($this->smsConfig['sms_service_provider'] == 'aliSms') { ?>目前官方提供的可設置標簽有 ${buyName} 購買人、${orderSn} 訂單編號、${orderTotal} 訂單金額、${deliveryName} 快遞名稱、${expressNumber} 快遞單號<?php } ?>
                                    <?php if($this->smsConfig['sms_service_provider'] == 'huyiSms') { ?>目前官方提供的可設置標簽有 {buyName} 購買人、{orderSn} 訂單編號、{orderTotal} 訂單金額、{deliveryName} 快遞名稱、{expressNumber} 快遞單號。<br>互億短信服務已內置模板,模板ID只需要填寫1,不為空即是啟用。<?php } ?>
                                    <?php if($this->smsConfig['sms_service_provider'] == 'tencentSms') { ?>目前官方提供的可設置標簽有 {1} 購買人、{2} 訂單編號、{3} 訂單金額、{4} 快遞名稱、{5} 快遞單號<?php } ?>
                                    <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>目前官方提供的可設置標簽有 {buyName} 購買人、{orderSn} 訂單編號、{orderTotal} 訂單金額、{deliveryName} 快遞名稱、{expressNumber} 快遞單號。<?php } ?>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('訂單提交模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('addOrderSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('addOrderSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>模板示例:親愛的{buyName},您的訂單已提交,訂單金額為{orderTotal},請及時進行后續處理<?php } ?>
                                    </p>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('訂單付款模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('paymentOrderSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('paymentOrderSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>模板示例:親愛的{buyName},您的訂單{orderSn},金額{orderTotal},已經付款完成<?php } ?>
                                    </p>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('訂單發貨模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('shipOrderSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('shipOrderSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>模板示例:親愛的{buyName},您的訂單{orderSn},已由快遞{deliveryName}發出,快遞單號{expressNumber}<?php } ?>
                                    </p>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('訂單收貨模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('receiptOrderSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('receiptOrderSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>模板示例:親愛的{buyName},您的訂單{orderSn},已經簽收<?php } ?>
                                    </p>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('訂單取消模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('cancelOrderSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('cancelOrderSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>模板示例:親愛的{buyName},您的訂單{orderSn},已經取消<?php } ?>
                                    </p>
                                </div>
                            </div>
                        </div>
                        <div class="tab-pane" id="tab_3">
                            <div class="box-body">
                                <div class="alert alert-info alert-dismissible">
                                    <?php echo $this->translate('用戶 注冊、登錄 驗證碼,除了啟用 短信服務,還需要在 客戶設置 勾選 手機號碼和手機驗證碼。互億短信服務已內置模板,模板ID只需要填寫1,不為空即是啟用。'); ?>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('驗證碼模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('captchaSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('captchaSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'aliSms') { ?>${code} 驗證碼<?php } ?>
                                        <?php if($this->smsConfig['sms_service_provider'] == 'huyiSms') { ?>{code} 驗證碼<?php } ?>
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>模板示例:您的驗證碼:{code},15分鐘內有效,請勿將驗證碼泄露給他人,如非本人操作請忽略<?php } ?>
                                        <?php if($this->smsConfig['sms_service_provider'] == 'tencentSms') { ?>{1} 驗證碼<?php } ?>
                                    </p>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label"><?php echo $this->translate('后臺余額變更模板ID'); ?></label>
                                    <div class="col-sm-3">
                                        <?php echo $this->formElement($form->get('balanceSmsTemplateId')); ?>
                                        <?php echo $this->formElementErrors($form->get('balanceSmsTemplateId'), ['class'=>'error-message']); ?>
                                    </div>
                                    <p class="form-control-static small">
                                        <?php if($this->smsConfig['sms_service_provider'] == 'aliSms') { ?>${userName} 客戶名稱、${changeTime} 變動時間、${changeAmountType} 變動類型、${changeUserAmount} 變動金額、${userAmount} 變動后總額<?php } ?>
                                        <?php if($this->smsConfig['sms_service_provider'] == 'huyiSms') { ?>需自行添加 短信模板。<?php } ?>
                                        <?php if($this->smsConfig['sms_service_provider'] == 'smsbao') { ?>{userName} 客戶名稱、{changeTime} 變動時間、{changeAmountType} 變動類型、{changeUserAmount} 變動金額、{userAmount} 變動后總額<?php } ?>
                                        <?php if($this->smsConfig['sms_service_provider'] == 'tencentSms') { ?>{1} 客戶名稱、{2} 變動時間、{3} 變動類型、{4} 變動金額、{5} 變動后總額<?php } ?>
                                    </p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
    <?php echo $this->form()->closeTag(); ?>
</div>

好了經過以上的添加,短信寶的短信平臺已經替換成功了,可以正常使用了

報備一下短信寶的VIP模板,這樣就可以走短信寶的優質通道了,即便遇到敏感文字我們都不會人工審核,短信內容3~5秒就可送達。

另外:我們已經開發好完整的DBShop商城系統短信寶插件,點擊此鏈接 下載及查看安裝流程。

開源插件

最新更新

電商類

CMS類

微信類

文章標簽