一元云购短信-配置修改

今天有一个客户又让我改短信接口,说它用的一元云购的系统,说希望改成我以前给它介绍过的这家(56短信网),我看了一下代码做了,感觉应该不难,因为我以前接入过的系统很多了,其实找到核心 代码,复制粘贴有些时候就可以搞定的事,现在我把代码贡献出来,供大家参考。
1.找到system\modules\admin\tpl\config.mobile.tpl.php文件,增加如下代码

<form action="" method="post">
<table width="100%" class="meg_table">
     <tr>
    	<td width="200"><b>56短信网(www.56dxw.com)</b></td> 
   		<td key="2" class="mobile_on_off"></td>
     </tr>      
    <tr>
    	<td width="100">用户名:</td> 
   		<td><input type="text" name="mid" class="input-text wid150"  value="<?php echo $mobiles['cfg_mobile_dxw']['mid']; ?>"></td>
    </tr>
    <tr>
    	<td width="100">密码:</td> 
   		<td><input type="password" name="mpass" class="input-text wid150"  value="******">
		如要修改密码请点 <a href="http://www.smsbao.com">修改密码</a></td>
    </tr>
	<tr>
    	<td width="100">短信签名:</td>
   		<td><input type="text" name="mqianming" class="input-text wid150"  value="<?php echo $mobiles['cfg_mobile_dxw']['mqianming']; ?>">
		 请在联系云购官方获取! 格式为: <font color="red">【你的签名】</font>
		</td>
    </tr>
     <tr>
	 <td width="100">短信信息:</td>
	 <td>
     <span><?php echo $mobiles['cfg_mobile_dxw']['mobile_text']; ?></span>
     </td>
     </tr>     
     
     <tr>
    	<td width="100" height="50"><input type="hidden" name="interface" value="2" /></td>
   		<td><input type="submit" value=" 提交并启用该接口 " name="dosubmit" class="button"></td>
    </tr>
</table>
</form>

2.找到如下文件,system\libs\sendmobile.class.php增加如下代码



	/*短信发送核心部分*/
	private function cfg_send_2(){
		$mobile = $this->mobile['cfg_mobile_dxw'];
		$config = $this->config;
		
		$url = "http://jiekou.56dxw.com/sms/HttpInterfaceMd5.aspx?comid=61&sendtime=&smsnumber=10690&username=".$mobile["mid"]."&userpwd=".md5($mobile["mpass"])."&handtel=".$config["mobile"]."&sendcontent=".urlencode($config['content']);
		
		$ch2 = curl_init($url);
		curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
		$html = curl_exec($ch2);
		curl_close($ch2);
		
		if($html>0){
			$errorArray = array(-1=>"用户名密码不正确",-5=>"客户短信数量为0",-21=>"代表要加签名",-23=>"对某个用户名进行了屏蔽处理",-22=>"非法手机号");
			$error = $errorArray[$html];
			if(empty($error)){
				$error = "发送失败";
			}
			$this->v=$error;
			$this->error=-1;
		}else{
			$this->v="发送成功";
			$this->error=1;
		}			
		
		
	}


3.系统设置-短信配置
输出用户,密码,自己网站的签名就可以了,如图所示




填写正确的用户名和密码之后,就可以发送短信了,我已经测试过了,是没有问题的,以上代码仅供大家参考,需要说明一下,以上代码和用那个版本没有太大的关系,要灵活修改就可以轻松实现短信的发送了.
C++实现56dxw短信验证码WebService接口。 编译工具gsoap-2.8.zip 因为长名字关系,请到根目录解压后再拷贝进来,直接解压可能会解压报错。 用VS.NET2003 开发游戏程序的时候,有一个登录功能模块,需要短信验证码。 56短信网有两种接口,一是HTTP,二是 Web Service。 短信验证码,采用HTTP接口,在客户端发送是不实际的,因为一是受制于客户端网络稳定性,二是容易被客户端拦截URL, 三是被拦截后,容易泄漏56短信网的帐号密码,导致被盗用,产生不安全因素。 服务端采用HTTP接口,也不是很好,服务端连接众多客户端,压力很大,如何有效执行URL和如何得到返回值都是问题。 服务端毕竟不是网站,需要及时有效响应。 因此,采用 服务端 + Web Service 方案很有必要。 其实,Web Service是什么,之前我也不懂,翻阅了大量百度后,知道SOAP这个东西来实现。 非常感谢这篇文章 http://hi.baidu.com/winnyang/blog/item/1138fad9bfac1be338012fdf.html 现在把我C++写的例子实现简单介绍下,与大家共享: 1、下载工具gsoap-2.8。gsoap是个好工具,包装了SOAP到C++的实现,不需要我们再辛苦。(例子中附带这个工具) gsoap-2.8.zip 因为长名字关系,请到根目录解压后再拷贝进来,直接解压可能会解压报错。 2、我例子目录下面有个文件夹gsoap,里面 soapcpp2.exe、wsdl2h.exe 、wsmap.dat、gsoap.bat、stdsoap2.h、stdsoap2.cpp 这几个文件不要删除。 其它文件可以删除,通过执行gsoap.bat重新生成。 3、执行gsoap.bat生成文件。 gsoap.bat内容: wsdl2h.exe -o 56dxw_webservice.h -t wsmap.dat -e http://jiekou.56dxw.com/WebServiceInterface.asmx?wsdl soapcpp2 -i -C -x 56dxw_webservice.h -I ..\gsoap-2.8\gsoap\import del /s /f /q WebServiceInterfaceSoap.nsmap.cpp rename WebServiceInterfaceSoap.nsmap WebServiceInterfaceSoap.nsmap.cpp 各参数意义稍微解释(网上复制): -t 定义std:string到C++中的字符串转化规则, 当前例子采用UNIOCDE编码编译,请在wsmap.dat 中加上 xsd__string = | std::wstring | std::wstring* 这句话 -o 文件名,指定输出头文件 -n 名空间前缀 代替默认的ns -c 产生纯C代码,否则是C++代码 -s 不要使用STL代码 -t 文件名,指定type map文件,默认为typemap.dat -e 禁止为enum成员加上名空间前缀 -C 仅生成客户端代码 -S 仅生成服务器端代码 -L 不要产生soapClientLib.c和soapServerLib.c文件 -c 产生纯C代码,否则是C++代码(与头文件有关) -I 指定import路径(见上文) -x 不要产生XML示例文件 -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)。 4、创建VS.NET2003对话框例子 (1)设置项目属性 设置 不使用预编译头 和 使用 Unicode 字符集(是否使用UNICODE根据项目实际情况,只要注意字符串转换) (2)项目中添加以下文件:注意,这些文件都是通过gsoap自动生成,无须修改。 stdsoap2.cpp stdsoap2.h soapC.cpp soapH.h WebServiceInterfaceSoap.nsmap.cpp soapWebServiceInterfaceSoapProxy.cpp soapWebServiceInterfaceSoapProxy.h (3)在对话框.h文件中 添加 #include "gsoap/soapWebServiceInterfaceSoapProxy.h" using namespace std; (4)在对话框.cpp文件中 添加 void Ctest2Dlg::OnBnClickedButton1() { #ifdef _UNICODE #define tstring wstring #else #define tstring string #endif WebServiceInterfaceSoapProxy gs; _ns1__SendNote SendSms; _ns1__SendNoteResponse Resp; CString str; GetDlgItemText(IDC_EDIT3,str); tstring handtels(str); tstring content(TEXT("验证码内容")); GetDlgItemText(IDC_EDIT1,str); tstring userName(str); //请测试人员此处直接输入用户名和密码 GetDlgItemText(IDC_EDIT2,str); tstring password(str); tstring cid(TEXT("713")); tstring sendtime(TEXT("")); tstring smsnumber(TEXT("1061")); SendSms.handtels = &handtels; SendSms._USCOREcontent = &content; SendSms.userName = &userName; SendSms.password = &password; SendSms.cid = &cid; SendSms._USCOREsendtime = &sendtime; SendSms._USCOREsmsnumber = &smsnumber; if(gs.SendNote(&SendSms;, &Resp;) == SOAP_OK) { int nReturn = Resp.SendNoteResult; switch( nReturn ) { case 1:str.Format(TEXT("发送成功"));break; case -1:str.Format(TEXT("用户名密码不正确"));break; case -2:str.Format(TEXT("内容不能大于70个字"));break; case -3:str.Format(TEXT("验证此平台是否存在"));break; case -4:str.Format(TEXT("提交号码不能为空或客户余额为0"));break; case -5:str.Format(TEXT("客户剩余条数不够要发送的短信数量"));break; case -6:str.Format(TEXT("非法短信内容"));break; case -7:str.Format(TEXT("返回系统故障"));break; case -8:str.Format(TEXT("网络性错误,请稍后再试"));break; default:str.Format(TEXT("未知错误"));break; } AfxMessageBox(str); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值