首先是设置对应的的管家婆erp所需要的相关信息
 'online'=>['appkey'  =>'appkey','app_secret'=>'app_secret','sign_key'=>'sign_key','grt_auth_code'=>'登录链接','get_token'=>'获取token链接','get_refresh_token'=>'获取刷新token链接','api_url'=>'api链接','shopkey'=>'商城秘钥'],

登录管家婆erp获取对应的code并将其转换成我们需要的token

    public function authCode($code){
//        $auth_code=$param['auth_code'];$config = config('erp.online');
//        $iv = mb_substr(trim($config['app_secret']),5,16);//获取偏移量
//        $eas->iv = $iv;
//        $eas->encryptKey = trim($config['app_secret']);//转换密码$params = array('TimeStamp' => date('Y-m-d H:i:s', time()),'GrantType' => 'auth_token','AuthParam' => trim($code));$p = $this->encrypt(trim(json_encode($params, JSON_UNESCAPED_SLASHES)));$params = array('appkey' => trim($config['appkey']), 'p' => $p, 'signkey' => trim($config['sign_key']));$sign = trim($this->sha256(json_encode($params, JSON_UNESCAPED_SLASHES)));$sign = trim(urlencode($sign));$post_data['p'] = trim(urlencode($p));//签名$post_data['sign'] = $sign;$post_data['appkey'] = trim($config['appkey']);//key$ret_json = $this->post($config['get_token'], $post_data);$authStr = $ret_json['response']['response'];$tokenStr = $this->decrypt($authStr);$result = stripslashes($tokenStr);$arr = [];$preg = '/(?<={).*?(?=})+/';preg_match_all($preg, $result, $arr);$arr_result = '{' . $arr['0']['0'] . '}';$result = json_decode($arr_result, true);
//        trace('获得token:' . print_r($tokenStr, true), 'zyx');return $result;}//sha256算法public function sha256($data, $rawOutput = false){if (!is_scalar($data)) {return false;}$data = (string)$data;$rawOutput = !!$rawOutput;return hash('sha256', $data, $rawOutput);}//加密public function encrypt($encryptStr){$config = config('erp.online');$localIV = $this->iv;$encryptKey = trim($config['app_secret']);$encryptStr = trim($encryptStr);var_dump($encryptStr);//Open module$module = @mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, $localIV);//print "module = $module <br/>" ;@mcrypt_generic_init($module, $encryptKey, $localIV);//Padding$block = @mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);$pad = $block - (strlen($encryptStr) % $block); //Compute how many characters need to pad$encryptStr .= str_repeat(chr($pad), $pad); // After pad, the str length must be equal to block or its integer multiples//encrypt$encrypted = @mcrypt_generic($module, $encryptStr);//Close@mcrypt_generic_deinit($module);@mcrypt_module_close($module);return base64_encode($encrypted);}//解密public function decrypt($encryptStr){$config = config('erp.online');$localIV = $this->iv;$encryptKey = trim($config['app_secret']);//Open module$module = @mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, $localIV);//print "module = $module <br/>" ;@mcrypt_generic_init($module, $encryptKey, $localIV);$encryptedData = base64_decode($encryptStr);$encryptedData = @mdecrypt_generic($module, $encryptedData);return $encryptedData;$decode = @openssl_decrypt(base64_decode($encryptStr), "AES-128-CBC", $encryptKey, true, $localIV);return $decode;}public function post($url, $data){$str = '';foreach ($data as $k => $v) {$str .= $k . '=' . $v . '&';}$str = trim($str, '&');$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, FALSE);//不抓取头部信息。只返回数据curl_setopt($curl, CURLOPT_TIMEOUT, 3000);//超时设置curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);//1表示不返回bool值curl_setopt($curl, CURLOPT_POST, TRUE);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));//重点curl_setopt($curl, CURLOPT_POSTFIELDS, $str);$response = curl_exec($curl);if (curl_errno($curl)) {return curl_error($curl);}curl_close($curl);$result = json_decode($response, true, 512, JSON_BIGINT_AS_STRING);return $result;}public function code(){$params = $this->request->param();$auth = $this->authCode($params['auth_code']);$data = ['code' => $params['auth_code'],'createtime' => time(),'updatetime' => time(),'auth_token' => $auth['auth_token'],'profileid' => $auth['profileid'],'employee_id' => $auth['employee_id'],'expires_in' => $auth['expires_in'],'refresh_token' => $auth['refresh_token'],'re_expires_in' => $auth['re_expires_in'],'timestamp' => $auth['timestamp']];db('code')->insert($data);}

获取到对应的token之后我们就可以根据管家婆提供的文档使用token来唤醒不同的接口了

PHP对接管家婆erp系统获取对应的token相关推荐

  1. mes系统与Oracle对接,Oracle ERP系统与MES系统的接口分析与实现

    1. 概念 什么是ERP?ERP是英文EnterpriseResourcePlanning(企业资源计划)的简写.管理重心在企业的计划层,整合企业现有的生产资源,编制生产计划,实现:根据订单或市场情况 ...

  2. ERP系统对接淘宝电商和线下工作人员的问题与解决方案

    作为一名程序员,我正在开发一个ERP系统,该系统需要对接淘宝电商和线下工作人员,以实现订单管理.库存管理.财务管理等功能.在开发过程中,我遇到了一些问题,但是通过不断的努力和探索,最终找到了解决方案, ...

  3. 公网远程访问公司管家婆ERP进销存管理系统 - 无需公网IP

    文章目录 1.管家婆服务 2. 内网穿透 2.1 安装cpolar内网穿透 2.2 设置远程访问 3. 固定访问地址 4. 配置固定公网访问地址 管家婆辉煌系列产品是中小企业进销存.财务管理一体化的典 ...

  4. 奇门接口对接从ERP到WCS系统

    公司最近项目需要开发一个系统,电商订单货物自动打包贴单的系统,从ERP获取数据,对需求的数据进行排序和筛选处理,然后再将数据给贴标机打印贴标,有对接过ERP的大神,私聊.

  5. his系统与用友软件对接实现数据同步到erp系统

    相关his系统与用友软件对接实现数据同步到erp系统中 his系统和用友财务软件,他们现在想实现把业务系统中是数据传递到用友软件中生成用友的财务凭证,他们开始采用把业务系统中数据批量导出excel表, ...

  6. ERP系统对接方案,API接口封装系列(高并发)

    ERP系统对接需要以下步骤: 调研ERP系统的API:首先需要了解ERP系统是否有提供API接口,以及API接口的功能和使用方法. 确定对接方案:根据业务需求,确定ERP系统对接方案,选择适合自己需求 ...

  7. ERP系统与钉钉对接

    ERP系统各部门使用人员提醒消息与阿里钉钉对接,通过ERP系统消息平台定时把每个ERP系统操作人员的提示消息推送到各自的手机阿里钉钉中,操作人可点击钉钉消息登录ERP系统进行相应的操作! (深圳恒兴源 ...

  8. 活字格对接RF手持机与ERP系统,帮助RFID快速盘点方案落地

    活字格对接RF手持机与ERP系统,帮助RFID快速盘点方案落地 这个玩意有点意思,要不要搞来玩玩? ----------- 射频技术(RF)是Radio Frequency的缩写,较常见的应用有无线射 ...

  9. ERP系统与PLC数据对接方法

    2019独角兽企业重金招聘Python工程师标准>>> http://www.beeinfo.icoc.me 1.应用背景 ERP作为企业的信息管理系统得到广泛应用,ERP偏向于财务 ...

最新文章

  1. 设置自动关门时长_小米苹果全适配,绿米D100全自动指纹锁新鲜上手
  2. Boost:aligned delete对齐删除的测试程序
  3. 在基于Jetty Fast CGI Proxy和php-fpm下配置Discuz
  4. 贝叶斯学习及共轭先验
  5. linux操作系统中的shell编程----基于头歌实践教学编写shell脚本测试结果
  6. python dataframe取行列_pandas DataFrame 行列索引及值的获取的方法
  7. vc6.0到vc 2008(vc 9.0)的变化
  8. 完整制作个人博客系统
  9. 几个例子理解博弈论与纳什均衡
  10. 牛客网 - 简单的分数(模拟)
  11. #腾讯云·未来开发者云梯计划#第三期上线啦!全国5000个免费云认证培训考试名额开放报名中!
  12. SystemVerilog学习笔记(可综合的部分)(一)
  13. Java基础语法(十三):throw和throws
  14. 阿里云,百度云等云服务器中搭建gitblit-1.8.0时,报java.net.BindException: Cannot assign requested address: bind
  15. 【Linux学习-入门推荐】
  16. 英语学习感悟,培养自信心,远离挫败感,人生更精彩
  17. (转)Elasticsearch .net client NEST使用说明 2.x
  18. 学习笔记-第十二章 恶意代码分析实战
  19. 大数据之路之Linux篇
  20. Java中的一维数组和二维数组

热门文章

  1. 相敏检波电路matlab,侧向仪器中数字相敏检波算法的改进与实现
  2. 用Keil 开发TI微控制器(TivaC)
  3. 确认,谷歌AI中国中心总裁李佳离职
  4. python二维表转一维表_曾贤志从零基础开始学用Python处理Excel数据第1,2季
  5. 安装.net4.6.2的方法
  6. RPC 协议之争和选型要点
  7. 看“千人工程”事件有感
  8. 设计的BOOST的详细流程(亲手设计的BOOST电路的详细解释)
  9. 使用vs2010编译CCV1.5
  10. java计算机毕业设计体育馆场内设施预约系统设计源代码+数据库+系统+lw文档