返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >vue H5对接团油接口(后台服务是php)
  • 603
分享到

vue H5对接团油接口(后台服务是php)

phpvuehtml5接口 2023-09-20 19:09:49 603人浏览 独家记忆
摘要

目录 业务场景: 简单介绍: 声明 业务逻辑 接入代码 总结: 业务场景: 用Vue写的H5 app中现在需要接入能链集团的团油服务 接入成功效果图 简单介绍: 声明 看团油的官方文档能顺利接通的是神仙,那种垃圾文档三流水平

目录

业务场景:

简单介绍:

声明

业务逻辑

接入代码

总结:


业务场景:

Vue写的H5 app中现在需要接入能链集团的团油服务

接入成功效果图

简单介绍:

声明

看团油的官方文档能顺利接通的是神仙,那种垃圾文档三流水平都算不上,缺胳膊少腿的

业务逻辑

其实很简单,下面详细梳理一下业务逻辑

  1. 企业在团油申请成为合作方,申请通过后会给你一个渠道编码、key、Secret(这三个值注意,文档里不同接口可能叫不同的名字,就这种垃圾文档连个名字都统一不了呵呵)
  2. 根据文档的授权码接口,获取到团油返回的result如:
    "result":"d68df7dd3174b98cfb125e4bb46969a7" //授权码

        这里面就是authCode,authCode是干嘛用的呢,说的直白一点就是告诉团头,这笔流量来自            自于你这个合作方的(后面好跟你分钱)。

     3.拿到了authCode之后,我们需要将它拼接到团油的H5的链接里面,然后在自己的H5里面打            开这个链接就可以进入团油的页面了

        这里要吐槽一下:整个文档找不到链接,那链接在哪里呢,

      

 不好意思,你打开控制台拿到的链接也是错的哈哈哈,牛皮不!就是这么菜!别不相信。

正确的链接我是在demo里面找到的测试链接,然后!然后根据测试链接猜出来的!!!!哈哈哈

下面我放出来正确的链接:

https://open.czb365.com/redirection/todo/?platfORMType=你的渠道码&authCode='.$autuCode

链接中的authCode就是步骤2生成的,拼接在后面就可以了

接入代码

  1. 获取授权码接口+拼接后的url,
    //我这边的业务场景是前端携带用户手机号发请求public function getTyURL(){if(!IS_POST){    $this->res['code'] = 100;    $this->res['msg'] = '请用post方法请求接口';    $this->response($this->res,'json');}$post_data = file_get_contents('php://input');$json = json_decode($post_data);$phone = $json->phone;//接收前端请求传递过来的手机号$params['app_key'] = C('ty_key');//自己的团油key$params['timestamp'] = $this->getUnixTimestamp();//时间戳方法$params['platformId'] = C('platformId');//渠道编码$params['phone'] = $phone;$sign = $this->MakeSign($params);//签名方法$params['sign'] = $sign;//请求团油接口获取autuCode$apiurl = 'https://mcs.czb365.com/services/v3/begin/getSecretCode';//接口请求地址$content = $this->send_post2($apiurl,$params);//发送请求方法$result = json_decode($content,true);if($result['code'] == '200'){$autuCode = $result['result'];$tyURL = 'https://open.czb365.com/redirection/todo/?    platformType=98633339&authCode='.$autuCode;$this->res['code'] = 200;$this->res['msg'] = '请求成功';$this->res['data']['tyURL'] = $tyURL;$this->response($this->res,'json');}else{    $this->res['code'] = 101;    $this->res['msg'] = '请求失败请稍后重试';    $this->response($this->res,'JSON');}}

    获取时间戳方法:

    function getUnixTimestamp (){    list($s1, $s2) = explode(' ', microtime());    return (float)sprintf('%.0f',(floatval($s1) + floatval($s2)) * 1000);}

    签名方法:

        public function MakeSign($params)   {       //签名步骤一:按字典序排序数组参数       ksort($params);       $string = $this->ToUrlParams($params);       //签名步骤二:在string后加入KEY       $string =C('ty_Secret'). $string . C('ty_Secret');       //签名步骤三:MD5加密       $string = md5($string);       //签名步骤四:所有字符转为大写       return $string;   }        public function ToUrlParams($params)  {      //print_r($params);      $string = '';      if (!empty($params)) {          $array = array();          foreach ($params as $key => $value) {              $array[] = $key . $value;          }          $string = implode($array);      }      return $string;  }

    发送请求方法:

    public function send_post2($url, $data){$curl = curl_init(); // 启动一个CURL会话curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; windows NT 5.0)'); // 模拟用户使用的浏览器//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转//curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referercurl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包xcurl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制 防止死循环curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回$tmpInfo = curl_exec($curl); // 执行操作if(curl_errno($curl)){echo 'Errno'.curl_error($curl);//捕抓异常}curl_close($curl); // 关闭CURL会话return $tmpInfo; // 返回数据} 
  2.  将得到的url返回给前端,然后open就可以了

总结

  1. 团油的接口文档就是个垃圾,没有之一!
  2. 关于文档中AndroidiOS的接入教程也是扯淡一样!不用看!由于我是H5封装的Android和ios,所以只要把拿到的团油url在WEBview和wkwebview中合理打开就可以了!他们的文档无非罗里吧嗦让你做了两件事:第一要给webview地理位置权限(这个不难吧自己搞定,别看那个憨批文档,看着看着怀疑人生了)第二要给支付权限(就是放行微信支付宝的支付请求)
  3. 其他的没啥要说的了当初因为客户必须要求接团油(钱都交了),网上几乎没有相关的接入教程,在这里把自己的摸索写下来,希望对你有所帮助。
  4. 最近很多人问我关于团油分佣的问题,这个我是开发,只把我从客户那里知道的在这里简单讲一下我的想法:
  5. 接入团油是需要收费的,他们平台申请开发者需要缴纳约13000/年左右
  6. 团油的合作加油站私营的比较多,中石油中石化相对较少,在南京、上海、广州都是如此。不建议接入!
  7. 资源源码已经上传需要的可以直接下载,有问题可以沟通交流(wx:15651012186)
  8. 接下来一篇讲另外一个相对中石化中石油多一点的链接

来源地址:https://blog.csdn.net/jtyxj/article/details/120104790

--结束END--

本文标题: vue H5对接团油接口(后台服务是php)

本文链接: https://lsjlt.com/news/413231.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作