阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 2682|回复: 14

[讨论] 通达OA中的飞信又歇了

  [复制链接]
  • TA的每日心情

    2017-8-12 10:21
  • 签到天数: 1326 天

    [LV.10]以坛为家III

    发表于 2012-8-3 17:16:27 | 显示全部楼层 |阅读模式
    太没谱了,其他版油们是否也同样问题??
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情

    2021-9-1 18:30
  • 签到天数: 956 天

    [LV.10]以坛为家III

    发表于 2012-8-3 19:53:24 | 显示全部楼层
    沙发沙发
    本文来自:阳光网驿_企业信息化专家 详细出处请参考:http://bbs.sunwy.org/thread-147791-1-1.html沙发
    本文来自:阳光网驿_企业信息化专家 详细出处请参考:http://bbs.sunwy.org/thread-147791-1-1.html沙发
    本文来自:阳光网驿_企业信息化专家 详细出处请参考:http://bbs.sunwy.org/thread-147791-1-1.html沙发
    本文来自:阳光网驿_企业信息化专家 详细出处请参考:http://bbs.sunwy.org/thread-147791-1-1.html
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2013-3-23 16:03
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2012-8-3 20:24:36 | 显示全部楼层
    那个版本的呀?  是突然不行了吗?还是你更新了什么?
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    无聊
    2020-1-27 23:07
  • 签到天数: 796 天

    [LV.10]以坛为家III

    发表于 2012-8-3 23:27:16 | 显示全部楼层
    加了登录验证码,要修改代码才能通过,已经更新!
    启用邀请码注册,提高发帖质量,建设交流社区
    头像被屏蔽
  • TA的每日心情
    奋斗
    2020-4-16 00:13
  • 签到天数: 682 天

    [LV.9]以坛为家II

    发表于 2012-8-4 09:38:45 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2023-4-27 15:56
  • 签到天数: 347 天

    [LV.8]以坛为家I

    发表于 2012-8-5 15:56:26 | 显示全部楼层
    我的飞信就没成功过
    字数补丁字数补丁字数补丁
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-3-20 19:35
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2012-8-6 17:31:17 | 显示全部楼层
    楼主,您好,飞信近期的“验证码”有了变化,请修改一下飞信的补丁。“\MYOA\webroot\inc\class.fetion.php”
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-3-20 19:35
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2012-8-6 17:37:11 | 显示全部楼层
    8月3日出现不能发信情况的,可以使用这个临时替换,即可。
    “\MYOA\webroot\inc\class.fetion.php”
    文件不加密
    代码如下:另存为“class.fetion.php”感谢《quanhengzhuang <blog.quanhz.com>》
    ....................................................................................................................


    <?php
    /**
    * PHP飞信发送类
    *
    * @author quanhengzhuang <blog.quanhz.com>
    * @version 1.4.0
    */
    class PHPFetion
    {

        /**
         * 发送者手机号
         * @var string
         */
        protected $_mobile;

        /**
         * 飞信密码
         * @var string
         */
        protected $_password;

        /**
         * Cookie字符串
         * @var string
         */
        protected $_cookie = '';

        /**
         * Uid缓存
         * @var array
         */
        protected $_uids = array();

        /**
         * csrfToken
         * @var string
         */
        protected $_csrfToten = null;

        /**
         * 构造函数
         * @param string $mobile 手机号(登录者)
         * @param string $password 飞信密码
         */
        public function __construct($mobile, $password)
        {
            if ($mobile === '' || $password === '')
            {
                return;
            }
            
            $this->_mobile = $mobile;
            $this->_password = $password;
            
            $this->_login();
        }

        /**
         * 析构函数
         */
        public function __destruct()
        {
            $this->_logout();
        }

        /**
         * 登录
         * @return string
         */
        protected function _login()
        {
            $uri = '/im5/login/loginHtml5.action';
            $data = 'm='.$this->_mobile.'&pass='.urlencode($this->_password).'&checkCode=2496&codekey=MjQ5Ng%3D%3D';
            
            $result = $this->_postWithCookie($uri, $data);
            
            //解析Cookie
            preg_match_all('/.*?\r\nSet-Cookie: (.*?);.*?/si', $result, $matches);
            if (isset($matches[1]))
            {
                $this->_cookie = implode('; ', $matches[1]);
            }
            
            $result = $this->_postWithCookie('/im/login/cklogin.action', '');
            
            return $result;
        }

        /**
         * 向指定的手机号发送飞信
         * @param string $mobile 手机号(接收者)
         * @param string $message 短信内容
         * @return string
         */
        public function send($mobile, $message)
        {
            if ($message === '')
            {
                return '';
            }

            //判断是给自己发还是给好友发
            if ($mobile == $this->_mobile)
            {
                return $this->_toMyself($message);
            }
            else
            {
                $uid = $this->_getUid($mobile);

                return $uid === '' ? '' : $this->_toUid($uid, $message);
            }
        }

        /**
         * 获取飞信ID
         * @param string $mobile 手机号
         * @return string
         */
        protected function _getUid($mobile)
        {
            if (empty($this->_uids[$mobile]))
            {
                $uri = '/im/index/searchOtherInfoList.action';
                $data = 'searchText='.$mobile;
                
                $result = $this->_postWithCookie($uri, $data);
                
                //匹配
                preg_match('/toinputMsg\.action\?touserid=(\d+)/si', $result, $matches);

                $this->_uids[$mobile] = isset($matches[1]) ? $matches[1] : '';
            }
            
            return $this->_uids[$mobile];
        }

        /**
         * 获取csrfToken,给好友发飞信时需要这个字段
         * @param string $uid 飞信ID
         * @return string
         */
        protected function _getCsrfToken($uid)
        {
            if ($this->_csrfToten === null)
            {
                $uri = '/im/chat/toinputMsg.action?touserid='.$uid;
                
                $result = $this->_postWithCookie($uri, '');
                
                preg_match('/name="csrfToken".*?value="(.*?)"/', $result, $matches);

                $this->_csrfToten = isset($matches[1]) ? $matches[1] : '';
            }

            return $this->_csrfToten;
        }

        /**
         * 向好友发送飞信
         * @param string $uid 飞信ID
         * @param string $message 短信内容
         * @return string
         */
        protected function _toUid($uid, $message)
        {
            $uri = '/im/chat/sendMsg.action?touserid='.$uid;
            $csrfToken = $this->_getCsrfToken($uid);
            $data = 'msg='.urlencode($message).'&csrfToken='.$csrfToken;
            
            $result = $this->_postWithCookie($uri, $data);
            
            return $result;
        }

        /**
         * 给自己发飞信
         * @param string $message
         * @return string
         */
        protected function _toMyself($message)
        {
            $uri = '/im/user/sendMsgToMyselfs.action';
            $result = $this->_postWithCookie($uri, 'msg='.urlencode($message));

            return $result;
        }

        /**
         * 退出飞信
         * @return string
         */
        protected function _logout()
        {
            $uri = '/im/index/logoutsubmit.action';
            $result = $this->_postWithCookie($uri, '');
            
            return $result;
        }

        /**
         * 携带Cookie向f.10086.cn发送POST请求
         * @param string $uri
         * @param string $data
         */
        protected function _postWithCookie($uri, $data)
        {
            $fp = fsockopen('f.10086.cn', 80);
            fputs($fp, "POST $uri HTTP/1.1\r\n");
            fputs($fp, "Host: f.10086.cn\r\n");
            fputs($fp, "Cookie: {$this->_cookie}\r\n");
            fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
            fputs($fp, "Content-Length: ".strlen($data)."\r\n");
            fputs($fp, "Connection: close\r\n\r\n");
            fputs($fp, $data);

            $result = '';
            while (!feof($fp))
            {
                $result .= fgets($fp);
            }

            fclose($fp);

            return $result;
        }

    }
    .........................................................................................

    class.fetion.zip

    1.59 KB, 下载次数: 0

    另存为“class.fetion.php”

    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-3-20 19:35
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2012-8-6 17:46:56 | 显示全部楼层
    代码另存即可,如果连这个都舍不得动手,那就掏阳光币吧........
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-3-20 19:35
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2012-8-6 17:48:22 | 显示全部楼层
    飞信已经修正里原来的验证方式,所以现在这个方法估计也维持不久,还望大家见谅。
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表