vtiger crm6.0自定义短信服务商二次开发

可能有些人连配置都没法新增 把vtigerCRM\modules\SMSNotifier\models 下的
Provide.php页面的
if (!in_array($file, array('.', '..', 'MyProvider.php', 'CVS'))) {
改成
if (!in_array($file, array('.', '..', 'MyProvider.php', 'SMSProvider.php'))) {

然后进入 SMS供应商配置


vtiger crm6.0默认的是 Clickatell

Clickatell是一家加州的移动网关公司,他们的业务主要是B2C短信,比如帮助商家向客户群发折扣信息、广告和其他通知短信等等。 我们国内一般不用这家公司的短信接口服务
都有自己的服务 


要加自己的配置 这里最下面一句话有提到 https://wiki.vtiger.com/index.php/SMSNotifier_Module


Writing Custom Providers

If you have planning to use SMS service provider and don't find the connector to it, you will need to write one.
SMSNotifier module defines ISMSProvider (modules/SMSNotifier/ext/ISMSProvider.php) interface which should be implemented by your custom provider.
A template sample provide is available at: modules/SMSNotifier/ext/providers/MyProvider.php.sample
Also look at ClickATell provider implementation: modules/SMSNotifier/ext/providers/ClickATell.php

MyProvider.php.sample这个页面时5.4的

6.0没有
所以我们参考 ClickATell.php
把ClickATell.php这个页面复制一份
改个名字  我这里取名 qtsms.php
<?php


class SMSNotifier_qtsms_Provider implements SMSNotifier_ISMSProvider_Model {

	private $userName;
	private $password;
	private $parameters = array();

	const SERVICE_URI = '你的供应商url';
	private static $REQUIRED_PARAMETERS = array();   //具体根据你的短信接口加参数 我的短信接口就一个账号密码 还有一个写死的参数所以这里不需要了放空就行了
       
	/**
	 * Function to get provider name
	 * @return <String> provider name
	 */
	public function getName() {
		return 'qtsms';
	}

	/**
	 * Function to get required parameters other than (userName, password)
	 * @return <array> required parameters list
	 */
	public function getRequiredParams() {
		return self::$REQUIRED_PARAMETERS;
	}

	/**
	 * Function to get service URL to use for a given type
	 * @param <String> $type like SEND, PING, QUERY
	 */
	public function getServiceURL($type = false) {
		return self::SERVICE_URI;
	}

	/**
	 * Function to set authentication parameters
	 * @param <String> $userName
	 * @param <String> $password
	 */
	public function setAuthParameters($userName, $password) {
		$this->userName = $userName;
		$this->password = $password;
	}

	/**
	 * Function to set non-auth parameter.
	 * @param <String> $key
	 * @param <String> $value
	 */
	public function setParameter($key, $value) {
		$this->parameters[$key] = $value;
	}

	/**
	 * Function to get parameter value
	 * @param <String> $key
	 * @param <String> $defaultValue
	 * @return <String> value/$default value
	 */
	public function getParameter($key, $defaultValue = false) {
		if(isset($this->parameters[$key])) {
			return $this->parameters[$key];
		}
		return $defaultValue;
	}

	/**
	 * Function to prepare parameters
	 * @return <Array> parameters
	 */
	protected function prepareParameters() {
//主意 这里的accout和pswd是我 自己公司短信接口的账号和密码参数  你们要根据自己的公司短信接口的账号密码参数来写 这样才能成功调用短信接口 

		return array('account' => $this->userName, 'pswd' => $this->password,'needstatus'=>'true');
		
	}

	/**
	 * Function to handle SMS Send operation
	 * @param <String> $message
	 * @param <Mixed> $toNumbers One or Array of numbers
	 */
	public function send($message, $toNumbers) {
		if(!is_array($toNumbers)) {
			$toNumbers = array($toNumbers);
		}

		$params = $this->prepareParameters();
		$params['msg'] = $message;  //这是我公司短信接口的信息参数名字 根据你具体短信接口 信息参数来写
		$params['mobile'] = implode(',', $toNumbers);
//这是我公司短信接口的手机号码参数名字 根据你具体短信接口 信息参数来写


		$serviceURL = $this->getServiceURL();
		$httpClient = new Vtiger_Net_Client($serviceURL);
		$response = $httpClient->doPost($params);
		$responseLines = split("\n", $response);
		$result = array( 'error' => false, 'statusmessage' => '' );
		
		$res=split(',',$responseLines[0]);
        if($res[1]!=0){
			$result['error']=true;
			$result['statusmessage']='send failed';
			$result['to'] = 'no number';
		}else{
			$result['id'] = $responseLines[1];
			$result['to'] = $toNumbers;
			$result['status']='Processing';
		}

				
		return $result;
		
		
		
	}

	/**
	 * Function to get query for status using messgae id
	 * @param <Number> $messageId
	 */
	public function query($messageId) {
	//echo '12345';
		$params = $this->prepareParameters();
		$params['apimsgid'] = $messageId;

		$serviceURL = $this->getServiceURL(self::SERVICE_QUERY);
		$httpClient = new Vtiger_Net_Client($serviceURL);
		$response = $httpClient->doPost($params);
		$response = trim($response);

		$result = array( 'error' => false, 'needlookup' => 1, 'statusmessage' => '' );
	    //var_dump($response);exit;
	
		if($response==''){
					$result['error'] = true;
					$result['needlookup'] = 0;
					$result['statusmessage'] = '发送失败';
		}
		
		return $result;
	}
}
?>


这个文件新增后 SMS供应商配置新增配置后 下拉框里会多一个qtsms的选项
然后就填自己的参数值了


然后 在客户列表那里点击 发送sms就可以群发短信了
效果图 :



有什么问题 加我qq 6637152交流


  • 大小: 24.2 KB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值