ecshop短信发送功能属于ecshop的一大亮点。我们在对ecshop二次开发的过程中。常常会对ecshop的短信接口进行处理。甚至是修改ecshop 短信发送核心库文件.那么ecshop短信发送功能的的具体原理和处理机制是什么呢。我们将结合ecshop后台和前台代码。来谈谈ecshop 短信发送功能.
我们进入ecshop后台。系统设置里面。有个短信设置,可以设置商户的手机号码.以及发送短信的控制流程。这个设置信息记录在ecshop数据库shop_config表中。里面的字段分别为.sms_shop_mobile,sms_order_placed,sms_order_payed,sms_order_shipped.三个参数分别表示下单,付款和发货时候是否发送短信息给客户。
ecshop短信系统,主要分布在上面说的几个状态中。我们不可能意义的列举该功能。我们将结合购物车中的代码flow.php来谈谈.
首先在下单的done动作中。我们将看到以下代码.
if ($_CFG['sms_order_placed'] == '1' &&$_CFG['sms_shop_mobile'] != '')
{
include_once('includes/cls_sms.php')
$sms = new sms()
$msg = $order['pay_status'] == PS_UNPAYED ?
$_LANG['order_placed_sms'] : $_LANG['order_placed_sms'] . '[' . $_LANG['sms_paid'] . ']'
$sms->send($_CFG['sms_shop_mobile'], sprintf($msg, $order['consignee'], $order['tel']), 0)
}
这里代码告诉我们.通过获取$_CFG中的配置信息来判断,是否给客户发信息。然后通过调用includes/cls_sms.php这个短信api接口来发送短信.首先声明了一个$sms对象.这个对象有个方法send()方法.
以下是ecshop短信系统send()函数的函数说明。
/**
* 发送短消息
*
* @access public
* @param string $phone 要发送到哪些个手机号码,多个号码用半角逗号隔开
* @param string $msg发送的消息内容
* @param string $send_date 定时发送时间
* @return boolean 发送成功返回true,失败返回false。
*/
function send($phone, $msg, $send_date = '', $send_num = 1)
所有的ecshop调用短信息发送的地方。都是通过这个方法来实现的。我们当然可以结合ecshop的一些使用需求.
短信接口如何对接短信接口系列嵌入型,标准化开发包,方便快捷的与企业现有的网站、APP、CRM、OA、ERP等系统进行无缝对接。支持 VB 、PHP、Delphi、.NET、VC 、 JAVA 等多种主流开发语言及 Windows 、Linux 、Unix 等运行环境的通信开发接口,企业资料的安全性极高,降低开发周期和成本,轻松实现短消息网关的连接和企业移动商务应用。适用于网站会员手机验证、App安全验证、订单通知、快递跟踪、会员提醒等短信应用。
发送接口支持HTTP和WebService
HTTP接口协议
1、发送接口
客户接口程序调用时请求的url地址,采用的是http post 接口
请求地址:http://dc.28inter.com/sms.aspx 对应UTF-8
http://dc.28inter.com/smsGBK.aspx 对应GB2312
参数名称 含义 说明
account 用户帐号 用户帐号,由系统管理员分配
password 帐号密码 用户账号对应的密码
mobile 全部被叫号码 发送目标号码,多个号码之间用半角逗号隔开
content 发送内容 短信的内容,内容需要UTF-8编码
sendTime 定时发送时间 为空表示立即发送,定时发送格式2010-10-24 09:08:10
action 发送任务命令 设置为固定的:send
extno 扩展子号 请先询问配置的通道是否支持扩展子号,如果不支持,请填空。子号只能为数字,且最多5位数
例如:action=send&userid=12&account=账号&password=密码&mobile=15012345678,13512345678&content=内容&sendTime=&extno=
返回值
返回信息提示 说明
ok 提交成功
用户名或密码不能为空 提交的用户名或密码为空
发送内容包含sql注入字符 包含sql注入字符
用户名或密码错误 表示用户名或密码错误
短信号码不能为空 提交的被叫号码为空
短信内容不能为空 发送内容为空
包含非法字符 表示检查到不允许发送的非法字符
对不起,您当前要发送的量大于您当前余额 当支付方式为预付费是,检查到账户余额不足
其他错误 其他数据库 *** 作方面的错误
在接收到客户端发送的http请求后,返回以xml的方式返回处理结果。格式为:
<xml version="1.0" encoding="utf-8">
<returnsms>
<returnstatus><status></returnstatus >---------- 返回状态值:成功返回Success 失败返回:Faild
<message><message></message>---------- 返回信息
<remainpoint><remainpoint></remainpoint>---------- 返回余额
<taskID><taskID></taskID>----------- 返回本次任务的序列ID
<successCounts><successCounts></successCounts>--成功短信数:当成功后返回提交成功短信数
</returnsms>
2、余额及已发送量查询接口
请求地址:http://dc.28inter.com/sms.aspx 对应UTF-8
http://dc.28inter.com/smsGBK.aspx 对应GB2312
参数名称 含义 说明
userid 企业id 用户ID,由管理分配账号的时候生成
account 用户帐号 用户帐号,由系统管理员分配
password 帐号密码 用户账号对应的密码
action 任务名称 设置为固定的:overage
例如:action=overage&userid=12&account=账号&password=密码
返回值
返回信息提示 说明
返回成功 查询成功将返回相应的支付方式、账户使用条数、总充值点数
用户名或密码不能为空 提交的用户名或密码为空
用户名或密码错误 表示用户名或密码错误
返回以xml的方式返回处理结果。格式为:
<xml version="1.0" encoding="utf-8">
<returnsms>
<returnstatus><status></returnstatus>-------返回状态值:成功返回Success 失败返回:Faild
<message><message></message>--------------返回信息提示
<payinfo><payinfo></payinfo>--------------返回支付方式 后付费,预付费
<overage><overage></overage>-------------返回余额
<sendTotal><sendTotal></sendTotal>----返回总点数 当支付方式为预付费是返回总充值点数
</returnsms>
3、非法关键词查询
请求地址:http://dc.28inter.com/sms.aspx 对应UTF-8
http://dc.28inter.com/smsGBK.aspx 对应GB2312
参数名称 含义 说明
userid 企业id 用户ID,由管理分配账号的时候生成
account 用户帐号 用户帐号,由系统管理员分配
password 帐号密码 用户账号对应的密码
action 任务名称 设置为固定的:checkkeyword
content 检测发送内容 需要发送的内容
例如:action=checkkeyword&userid=12&account=账号&password=密码&content=内容
返回值
返回信息提示 说明
用户名或密码不能为空 提交的用户名或密码为空
用户名或密码错误 表示用户名或密码错误
包含非法字符 检查出来包含非法关键词
未包含非法字符 未检查出非法关键词
返回以xml的方式返回处理结果。格式为:
<xml version="1.0" encoding="utf-8">
<returnsms>
<message>message</message>--------------返回信息提示
</returnsms>
4、状态报告接口
请求地址:http://dc.28inter.com/statusApi.aspx 对应UTF-8
http://dc.28inter.com/statusApi.aspx 对应GB2312
参数名称 含义 说明
userid 企业id 用户ID,由管理分配账号的时候生成
account 用户帐号 用户帐号,由系统管理员分配
password 帐号密码 用户账号对应的密码
action 任务名称 设置为固定的:query
例如:action=query&userid=12&account=账号&password=密码
返回以xml的方式返回处理结果。格式为:
<xml version="1.0" encoding="utf-8">
<returnsms>
<statusbox>
<mobile>15012345678</mobile>-------------对应的手机号码
<taskid>1212</taskid>-------------同一批任务ID
<status>10</status>---------状态报告----10:发送成功,20:发送失败
<receivetime>2011-12-02 22:12:11</receivetime>-------------接收时间
<errorcode>DELIVRD</errorcode>-上级网关返回值,不同网关返回值不同,仅作为参考
</statusbox>
<statusbox>
<mobile>15012345678</mobile>
<taskid>1212</taskid>
<status>20</status>
<receivetime>2011-12-02 22:12:11</receivetime>
<errorcode>2</errorcode>
</statusbox>
</returnsms>
5、上行接口
请求地址:http://dc.28inter.com/callApi.aspx 对应UTF-8
http://dc.28inter.com/callApi.aspx 对应GB2312
参数名称 含义 说明
userid 企业id 用户ID,由管理分配账号的时候生成
account 用户帐号 用户帐号,由系统管理员分配
password 帐号密码 用户账号对应的密码
action 任务名称 设置为固定的:query
例如:action=query&userid=12&account=账号&password=密码
返回以xml的方式返回处理结果。格式为:
<xml version="1.0" encoding="utf-8">
<returnsms>
<callbox>
<mobile>15012345678</mobile>-------------对应的手机号码
<taskid>1212</taskid>-------------同一批任务ID
<content>你好,我不需要</content>---------上行内容
<receivetime>2011-12-02 22:12:11</receivetime>-------------接收时间
</callbox>
<callbox>
<mobile>15012345678</mobile>
<taskid>1212</taskid>
<content>你好,本次活动路线是怎么的</content>
<receivetime>2011-12-02 22:12:11</receivetime>
</callbox>
</returnsms>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)