目录 业务场景: 简单介绍: 声明 业务逻辑 接入代码 总结: 业务场景: 用Vue写的H5 app中现在需要接入能链集团的团油服务 接入成功效果图 简单介绍: 声明 看团油的官方文档能顺利接通的是神仙,那种垃圾文档三流水平
目录
接入成功效果图
看团油的官方文档能顺利接通的是神仙,那种垃圾文档三流水平都算不上,缺胳膊少腿的
其实很简单,下面详细梳理一下业务逻辑
"result":"d68df7dd3174b98cfb125e4bb46969a7" //授权码
这里面就是authCode,authCode是干嘛用的呢,说的直白一点就是告诉团头,这笔流量来自 自于你这个合作方的(后面好跟你分钱)。
3.拿到了authCode之后,我们需要将它拼接到团油的H5的链接里面,然后在自己的H5里面打 开这个链接就可以进入团油的页面了
这里要吐槽一下:整个文档找不到链接,那链接在哪里呢,
不好意思,你打开控制台拿到的链接也是错的哈哈哈,牛皮不!就是这么菜!别不相信。
正确的链接我是在demo里面找到的测试链接,然后!然后根据测试链接猜出来的!!!!哈哈哈
下面我放出来正确的链接:
https://open.czb365.com/redirection/todo/?platfORMType=你的渠道码&authCode='.$autuCode
链接中的authCode就是步骤2生成的,拼接在后面就可以了
//我这边的业务场景是前端携带用户手机号发请求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; // 返回数据}
将得到的url返回给前端,然后open就可以了
- 团油的接口文档就是个垃圾,没有之一!
- 关于文档中Android和iOS的接入教程也是扯淡一样!不用看!由于我是H5封装的Android和ios,所以只要把拿到的团油url在WEBview和wkwebview中合理打开就可以了!他们的文档无非罗里吧嗦让你做了两件事:第一要给webview地理位置权限(这个不难吧自己搞定,别看那个憨批文档,看着看着怀疑人生了)第二要给支付权限(就是放行微信支付宝的支付请求)
- 其他的没啥要说的了当初因为客户必须要求接团油(钱都交了),网上几乎没有相关的接入教程,在这里把自己的摸索写下来,希望对你有所帮助。
- 最近很多人问我关于团油分佣的问题,这个我是开发,只把我从客户那里知道的在这里简单讲一下我的想法:
- 接入团油是需要收费的,他们平台申请开发者需要缴纳约13000/年左右
- 团油的合作加油站私营的比较多,中石油中石化相对较少,在南京、上海、广州都是如此。不建议接入!
- 资源源码已经上传需要的可以直接下载,有问题可以沟通交流(wx:15651012186)
- 接下来一篇讲另外一个相对中石化中石油多一点的链接
--结束END--
本文标题: vue H5对接团油接口(后台服务是php)
本文链接: https://lsjlt.com/news/413231.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0