[转]人人店短信插件开发
本文转自:https://blog.csdn.net/mindev/article/details/75088344
人人商城是一款针对的移动端购物消费的微信商城管理系统。它不仅能为您提供专业可靠的技术支持,还能完美适配企业商用。可添加多个公众号使用,具有强大的自定义功能,让您拥有个性化商城。本人对该系统还是比较熟悉的,今天我就来分享一下,如何进行二次开发。我以替换短信接口为例,一步一步的手把手教大家开发过程。
短信接口使用的是短信宝短信平台的短信接口,小伙伴一定会问为什么使用短信宝作为案例呢?原因很简单,因为短信宝的平台极其稳定,而且短信发送速度相当快捷,验证码和订单通知在3~5秒就能收到,用户体验非常好,所以我们公司一直和短信宝保持着合作关系,小伙伴们也可以去短信宝的官网(http://www.smsbao.com)注册一个账号,还有免费的短信条数送呢。
接下来我就说一下开发步骤: 1。先打开项目/core/com/sms.php文件,添加短信宝的发送接口代码:
<?php
if (!defined('IN_IA')) 
{
    exit('Access Denied');
}
class Sms_EweiShopV2ComModel extends ComModel 
{
    public function send($mobile, $tplid, $data, $replace = true) 
    {
        global $_W;
        $smsset = $this->sms_set();
        $template = $this->sms_verify($tplid, $smsset);
        if (empty($template['status'])) 
        {
            return $template;
        }
        $params = $this->sms_data($template['type'], $data, $replace, $template);
        if ($template['type'] == 'juhe') 
        {
            $data = array('mobile' => $mobile, 'tpl_id' => $template['smstplid'], 'tpl_value' => $params, 'key' => $smsset['juhe_key']);
            $result = $this->http_post('http://v.juhe.cn/sms/send', $data);
            if (empty($result) || (0 < $result['error_code'])) 
            {
                return array('status' => 0, 'message' => '短信发送失败(' . $result['error_code'] . '):' . $result['reason']);
            }
        }
        if ($template['type'] == 'smsbao') {
            $results = array(
                    '30' => '密码错误',
                    '40' => '账号不存在',
                    '41' => '余额不足',
                    '42' => '帐号过期',
                    '43' => 'IP地址限制',
                    '50' => '内容含有敏感词',
                    '51' => '手机号码不正确'
                );
            $url = 'http://api.smsbao.com/sms?u='.$smsset['smsbao_key'].'&p='.md5($smsset['smsbao_secret']).'&m='.$mobile.'&c='.'【'.$smsset['smsbao_sign'].'】'.$params;
            $res = file_get_contents($url);
            if ($res != 0) {
                return array('status' => $res, 'message' => $results[$res]);
            }
        }
        if ($template['type'] == 'dayu') 
        {
                    include_once EWEI_SHOPV2_VENDOR . 'dayu/TopSdk.php';
                    $dayuClient = new TopClient();
                    $dayuClient->appkey = $smsset['dayu_key'];
                    $dayuClient->secretKey = $smsset['dayu_secret'];
                    $dayuRequest = new AlibabaAliqinFcSmsNumSendRequest();
                    $dayuRequest->setSmsType('normal');
                    $dayuRequest->setSmsFreeSignName($template['smssign']);
                    $dayuRequest->setSmsParam($params);
                    $dayuRequest->setRecNum('' . $mobile);
                    $dayuRequest->setSmsTemplateCode($template['smstplid']);
                    $dayuResult = $dayuClient->execute($dayuRequest);
                    $dayuResult = (array) $dayuResult;
                    if (empty($dayuResult) || !empty($dayuResult['code'])) 
                    {
                        return array('status' => 0, 'message' => '短信发送失败(' . $dayuResult['sub_msg'] . '/code: ' . $dayuResult['code'] . '/sub_code: ' . $dayuResult['sub_code'] . ')');
                    }
        }
        if ($template['type'] == 'emay') 
        {
                            include_once EWEI_SHOPV2_VENDOR . 'emay/SMSUtil.php';
                            $balance = $this->sms_num('emay', $smsset);
                            if ($balance <= 0) 
                            {
                                return array('status' => 0, 'message' => '短信发送失败(亿美软通余额不足, 当前余额' . $balance . ')');
                            }
                            $emayClient = new SMSUtil($smsset['emay_url'], $smsset['emay_sn'], $smsset['emay_pw'], $smsset['emay_sk'], array('proxyhost' => $smsset['emay_phost'], 'proxyport' => $smsset['pport'], 'proxyusername' => $smsset['puser'], 'proxypassword' => $smsset['ppw']), $smsset['emay_out'], $smsset['emay_outresp']);
                            $emayResult = $emayClient->send($mobile, '【' . $template['smssign'] . '】' . $params);
                            if (!empty($emayResult)) 
                            {
                                return array('status' => 0, 'message' => 