====== 差别 ====== 这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
zh:实际案例指导:astercc支持的sms供应商列表 [2015/03/03 07:20]
liuxl [使用系统列表内SMS供应商发送短信]
zh:实际案例指导:astercc支持的sms供应商列表 [2017/12/12 03:05] (当前版本)
行 13: 行 13:
 {{:​zh:​模块使用说明:​群发信息管理:​短信服务器页面1.png?​750|}} {{:​zh:​模块使用说明:​群发信息管理:​短信服务器页面1.png?​750|}}
  
-=====短信服务器的配置=====+===== 配置短信服务器 =====
 点击[添加]按钮,​打开添加短信服务器界面 点击[添加]按钮,​打开添加短信服务器界面
  
行 61: 行 61:
 ... ... ... ...
 <​code>​ vim /​home/​coder/​astercc_dev/​astcc_smsman.pl </​code>​ <​code>​ vim /​home/​coder/​astercc_dev/​astcc_smsman.pl </​code>​
-如果选择以上列表短信供应商的客户,只需将 [供应商、供应商提供的帐号、密码],填写到相应位置。+如果选择以上列表短信供应商的客户,只需将 [供应商、供应商提供的帐号(或序号)、密码],填写到相应位置。
  
-####​驿家365短信供应商(eaka365)+####​驿家365短信供应商(eaka365)接口,​需要修改{ my $serialpass = '​********';​ my $key = '​*********';​}
 <​file>​ <​file>​
 sub sms_eaka{ sub sms_eaka{
行 108: 行 108:
 </​file>​ </​file>​
  
 +####​亿美短信供应商接口,需要修改{my $serialpass = '​********'; ​ my $key = '​********';​}
 +<​file>​
 +sub sms_yimei {
 +        my $smsStuff = shift;
  
 +        $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status ​ = '​pending',​ `contacttime` = now() WHERE id = '​$smsStuff->​{'​id'​}';";​
 +        &​executeQuery($query);​
  
 +        my $nsPrefix = '​ns'​.(int(rand(8999))+1000);​
 +        my $softwareSerialNo = '​6SDK-EMY-6688-KEWMK';​
 +        my $serialpass = '​********';​
 +        my $key = '​********';​
 +        my $sendTime = '';​
 +        my $mobiles = $smsStuff->​{'​target'​};​
 +        my $smsContent = $batchcontact_archive_list{$smsStuff->​{'​batchcontact_archive_id'​}}{'​content'​};​
 +        my $addSerial = '';​
 +        my $srcCharset = '​UTF-8';​
 +        my $smsPriority = 5;
 +        my $xmldata = '<?​xml version="​1.0"​ encoding="'​.$srcCharset.'"?><​SOAP-ENV:​Envelope xmlns:​SOAP-ENC="​http://​schemas.xmlsoap.org/​soap/​encoding/"​ xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance"​ xmlns:​xsd="​http://​www.w3.org/​2001/​XMLSchema"​ xmlns:​SOAP-ENV="​http://​schemas.xmlsoap.org/​soap/​envelope/"​ SOAP-ENV:​encodingStyle="​http://​schemas.xmlsoap.org/​soap/​encoding/"><​SOAP-ENV:​Body><'​.$nsPrefix.':​sendSMS xmlns:'​.$nsPrefix.'​="​http://​sdkhttp.eucp.b2m.cn/"><​arg0 xsi:​type="​xsd:​string">'​.$softwareSerialNo.'</​arg0><​arg1 xsi:​type="​xsd:​string">'​.$key.'</​arg1><​arg2 xsi:​type="​xsd:​string">'​.$sendTime.'</​arg2><​arg4 xsi:​type="​xsd:​string">'​.$smsContent.'</​arg4><​arg5 xsi:​type="​xsd:​string">'​.$addSerial.'</​arg5><​arg6 xsi:​type="​xsd:​string">'​.$srcCharset.'</​arg6><​arg7 xsi:​type="​xsd:​int">'​.$smsPriority.'</​arg7><​arg3 xsi:​type="​xsd:​string">'​.$mobiles.'</​arg3></'​.$nsPrefix.':​sendSMS></​SOAP-ENV:​Body></​SOAP-ENV:​Envelope>';​
 +        my $response ​   = $ua->​post('​http://​sdk4report.eucp.b2m.cn:​8080/​sdk/​SDKService?​wsdl',​
 +                '​Host'​ => '​sdkhttp.eucp.b2m.cn',​
 +                '​User-Agent'​ => '​NuSOAP/​0.9.5 (1.123)',​
 +                '​Content-Type'​ => '​text/​xml;​ charset='​.$srcCharset,​
 +                '​SOAPAction'​ => '""',​
 +                '​Content'​ => $xmldata
 +        );
 +        my $response_content = $response->​content;​
 +        my $response_code = XMLin($response_content);​
 +        my $refcode = $response_code->​{'​S:​Body'​}->​{'​ns2:​sendSMSResponse'​}->​{'​return'​};​
  
 +        &​debug($refcode);​
 +
 +        if($refcode eq "​0"​){
 +                # success
 +                $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status='​success',​`contacttime`=now() WHERE id='"​.$smsStuff->​{'​id'​}."';";​
 +        }else{
 +                # falied
 +                $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status='​error',​`responsenote`='"​.$refcode."',​`contacttime`=now() WHERE id='"​.$smsStuff->​{'​id'​}."';";​
 +        }
 +
 +        &​executeQuery($query);​
 +
 +        return;
 +}
 +</​file>​
 +
 +
 +####​瑞特维短信供应商接口,需要修改{#​my $serialNu = '​********';#​序列号 ​ #my $serialpw = '​********';#​密码}
 +<​file>​
 +sub sms_dnhttp {
 +        my $smsStuff = shift;
 +        my $message = $batchcontact_archive_list{$smsStuff->​{'​batchcontact_archive_id'​}}{'​content'​};#​内容
 +        #老版本
 +        #my $serialNu = '​********';#​序列号
 +        #my $serialpw = '​********';#​密码
 +        #my $billcode1 = '​sms6007';#​计费代码1
 +        #my $billcode2 = '​116';#​计费代码2
 +
 +        #修正
 +        my $serialNu = '​********';#​序列号
 +        my $serialpw = '​********';#​密码
 +        my $billcode1 = '​sms60';#​计费代码1
 +        my $billcode2 = '​111';#​计费代码2 ​       ​
 +        my $numberCount = 1;#条数
 +        ​
 +        #​先获取审核信息id
 +        my $audit_response ​     = $ua->​post('​http://​202.85.215.208/​SmsService/​Service/​auditMessage',​
 +                {
 +                        serialNu ​   => $serialNu,
 +                        serialpw ​   => $serialpw,
 +                        smcontent ​  => $message,
 +                        numberCount => $numberCount,​
 +                        billcode ​   => $billcode1,
 +                }
 +        );
 +        my $auditId = $audit_response->​content;#​获取审核信息id
 +
 +        &​debug($auditId);​
 +
 +        if ($auditId > 0) {
 +                #​进行短信发送
 +                my $send_response ​      = $ua->​post('​http://​202.85.215.208/​SmsService/​Service/​sendSMS',​
 +                        {
 +                                phonenumber => $smsStuff->​{'​target'​},​
 +                                smscontent ​ => $message,
 +                                billcode ​   => $billcode2,
 +                                seqno       => $serialNu,
 +                                sendtime ​   => "",​
 +                                oldpw       => $serialpw,
 +                                auditId ​    => $auditId,
 +                        }
 +                );
 +                my $backmsg = $send_response->​content;​
 +
 +                &​debug($backmsg);​
 +                if($backmsg eq "​0"​){
 +                        # success
 +                        $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status ​ = '​success',​ contacttime = now() WHERE id = '​$smsStuff->​{'​id'​}'​ ";
 +                }else{
 +                        # falied
 +                        $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status ​ = '​error',​ responsenote = '​$backmsg',​ contacttime = now() WHERE id = '​$smsStuff->​{'​id'​}'​ ";
 +                }
 +        }else{
 +                # falied
 +                $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status ​ = '​error',​ responsenote = '​$auditId',​ contacttime = now() WHERE id = '​$smsStuff->​{'​id'​}'​ ";
 +        }
 +        &​executeQuery($query);​
 +        return;
 +}
 +
 +</​file>​
 +
 +
 +####​点点客短信供应商接口,需要修改{my $userName = '​********';#​用户名 ​ my $idString = '​********';#​密码}
 +<​file>​
 +sub sms_whhttp {
 +        my $smsStuff = shift;
 +        my $msgContent = $batchcontact_archive_list{$smsStuff->​{'​batchcontact_archive_id'​}}{'​content'​};#​内容
 +        my $userName = '​********';#​用户名
 +        my $idType = 1;#明文
 +        my $idString = '​********';#​密码
 +        my $sendTime = '';#​为空 立即发送
 +        my $destNumber = $smsStuff->​{'​target'​};#​目标号码
 +
 +        #​进行短信发送
 +        my $send_response ​      = $ua->​post('​http://​newweb1.dodoca.com:​8080/​NOSmsPlatform/​http/​DodocaInterface/​smsSendExt',​
 +                {
 +                        userName ​   => $userName,
 +                        idType ​     => $idType,
 +                        idString ​   => $idString,
 +                        msgContent ​ => $msgContent,​
 +                        destNumber ​ => $destNumber,​
 +                        sendTime ​   => $sendTime,
 +                }
 +        );
 +
 +        my $backmsg = $send_response->​content;​
 +        my $xmlmsg = XMLin($backmsg);​
 +        my @resary = split(","​ , trim($xmlmsg->​{'​result'​}));​
 +        my $backcode = $resary[0];
 +
 +        &​debug($backcode);​
 +
 +        if($backcode eq "​1"​){
 +                # succ
 +                $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status ​ = '​success',​responsenote = '​$xmlmsg->​{'​taskId'​}',​ contacttime = now() WHERE id = '​$smsStuff->​{'​id'​}'​ ";
 +        }else{
 +                # err
 +                $query = "​UPDATE "​.$db_prefix."​batchcontacts SET status ​ = '​error',​ responsenote = '​$xmlmsg->​{'​result'​}',​ contacttime = now() WHERE id = '​$smsStuff->​{'​id'​}'​ ";
 +        }
 +        &​executeQuery($query);​
 +
 +        return;
 +}
 +sub debug{
 +        my $message = shift;
 +        my $time=scalar localtime;
 +        if ($debug > 0) {
 +                open (HDW,">>​$Bin/​astcc_smsman.txt"​);​
 +                print HDW $time,"​ ",​$message,"​\n";​
 +                close HDW;
 +                if ($ARGV[0] eq '​-d'​){ ​         # output to file
 +
 +                }else{
 +                        print $time,"​ ",​$message,"​\n";​
 +                }
 +        }
 +}
 +
 +sub trim($)
 +{
 +        my $string = shift;
 +        $string =~ s/^\s+//;
 +        $string =~ s/\s+$//;
 +        return $string;
 +}
 +
 +sub become_daemon {
 +    die "​Can'​t fork" unless defined (my $child = fork);
 +    exit 0 if $child;#​kill父进程
 +    setsid();
 +    open( STDIN, "</​dev/​null"​ );
 +    open( STDOUT, ">/​dev/​null"​ );
 +    open( STDERR, ">&​STDOUT"​ );
 +
 +        $SIG{__WARN__} = sub {
 +                &debug ("​NOTE! " . join(" ", @_));
 +        };
 +
 +        $SIG{__DIE__} = sub {
 +                &debug ("​FATAL! " . join(" ", @_));
 +                unlink $pidFile;
 +                exit;
 +        };
 +
 +        $SIG{HUP} = $SIG{INT} = $SIG{TERM} = sub {
 +                # Any sort of death trigger results in death of all
 +                my $sig = shift;
 +                $SIG{$sig} = '​IGNORE';​
 +                die "​killed by $sig\n";​
 +                exit;
 +        };
 +
 +    umask(0);
 +        #$ENV{PATH} = '/​bin:/​sbin:/​usr/​bin:/​usr/​sbin';​
 +    return $$;
 +}
 +sub connect_mysql
 +{
 +        my      %info = @_;
 +        my      $dbh = DBI->​connect("​DBI:​mysql:​database=$info{'​dbname'​};​host=$info{'​dbhost'​};​port=$info{'​dbport'​}",​$info{'​dbuser'​},​$info{'​dbpasswd'​});​
 +        return($dbh);​
 +}
 +
 +sub executeQuery
 +{
 +        my      $query = shift;
 +        return if ($query eq ''​);​
 +
 +        my      $queryType = shift;
 +
 +        if (!$dbh->​ping) {
 +                 &​debug("​Reconnect database"​);​
 +                 $dbh = &​connect_mysql(%dbInfo);​
 +        }
 +        if ($debug > 10 && $internal_debug >0) {
 +                &​debug("​$query"​);​
 +        }
 +        $dbh->​do("​SET NAMES '​utf8'"​);​
 +        if ($queryType eq ''​) {
 +                        my $affect = $dbh->​do($query) or &​debug($dbh->​errstr."​($query)"​);​
 +                        if ($affect eq '​0E0'​){
 +                                return 0;
 +                        }else{
 +                                return $affect;
 +                        }
 +        }elsif ($queryType eq '​rows'​){
 +                        my $rows = $dbh->​prepare($query);​
 +                        $rows->​execute() or &​debug($dbh->​errstr);​
 +                        return $rows;
 +        }elsif ($queryType eq '​insert'​){
 +                $dbh->​do($query) or &​debug($dbh->​errstr);​
 +                return $dbh->​{q{mysql_insertid}};​
 +        }
 +}
 +
 +</​file>​
 ====使用第三方短信平台发送短信==== ====使用第三方短信平台发送短信====
 详情请阅读:[[zh:​二次开发者指南:​如何使用第三方短信平台发送短信|asterCC使用第三方短信平台发送短信]] 详情请阅读:[[zh:​二次开发者指南:​如何使用第三方短信平台发送短信|asterCC使用第三方短信平台发送短信]]
zh/实际案例指导/astercc支持的sms供应商列表.1425367235.txt.gz · 最后更改: 2017/12/12 03:11 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki