iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP Thinkphp5.0对接美团API接口 实现卡卷核销功能
  • 874
分享到

PHP Thinkphp5.0对接美团API接口 实现卡卷核销功能

phpandroid开发语言 2023-09-17 07:09:20 874人浏览 独家记忆
摘要

好久没有更新文章了。不知道关注我的小伙伴们是不是已经不在关注我了。最近在忙着一些推广运营的事情,所以没有更新, 这几天接到一个项目,需要对接美团api接口,实现核销功能。现在就来给大家展示具体代码,

好久没有更新文章了。不知道关注我的小伙伴们是不是已经不在关注我了。最近在忙着一些推广运营的事情,所以没有更新,
这几天接到一个项目,需要对接美团api接口,实现核销功能。现在就来给大家展示具体代码,

  public function tuanGou_hexiao(){    //    $qr_cpde = $_GET['qr_code'];    $open_shop_uuid = $_GET['open_shop_uuid'];     // $arr 为数组 里面为应用参数    $appKey = "111111111";    $secret = "11111111111111111"; //秘钥    $timestamp = date('Y-m-d H:i:s');    $fORMat = 'JSON';    $v = 1;    $sign_method = 'MD5';    //因为功能要实现在小程序,所以获取的必要信息要存在文件中,有必要时拿出来    //不是必要行为,    $file = $this->readFile();     $data = [      'app_key' => $appKey,      'timestamp' => $timestamp,      'sign_method' => $sign_method,      'format' => $format,      'v' => $v,      //此处的session值,我原本是存在文件中的,      //如果你不需要存文件,那你就当做参数传递过来      'session' => $file['session'],    ];    //根据不同的操作类型配置不同的参数    //具体参数含义见 https://open.dianping.com/document/v2?docId=6000176&rootDocId=5000    if($_GET['type']=='save'){      $arr = [        'requestid' => '123',        'count'=>1,        'receipt_code' => $qr_cpde,        'open_shop_uuid' => $open_shop_uuid,        'app_shop_account' => '账号',        'app_shop_accountname' => '账号名称',      ];      $url = 'Https://openapi.dianping.com/router/tuangou/receipt/consume';//验券(核销)    }elseif ($_GET['type']=='cancel'){       $arr = [          'app_deal_id' => $_GET['deal_id'],          'receipt_code' => $qr_cpde,          'open_shop_uuid' => $open_shop_uuid,          'app_shop_account' => '账号',          'app_shop_accountname' => '账号名称',        ];      $url = 'https://openapi.dianping.com/router/tuangou/receipt/reverseconsume';//撤销    }else{      $arr = [        'receipt_code' => $qr_cpde,        'open_shop_uuid' => $open_shop_uuid,      ];      $url = 'https://openapi.dianping.com/router/tuangou/receipt/prepare';//查询券    }     $data = array_merge($data, $arr);    ksort($data);    $sign = $this->call_sign($secret, $data);//获取签名    $data['sign'] = $sign;    $data = array_merge($data, $arr);    $postdata = http_build_query($data);    $tmpInfo= $this->curl_post($url,$postdata);    $this->ReturnSucess($tmpInfo);   }     public function get_auth(){    $auth_code = $_GET["auth_code"];    //判断是否为回调    if(empty($auth_code)) {      $app_key='11111111111';      $state='teststate';      //回调的url,我配置为当前方法。      $redirect_url='https:你的路径/index/get_auth';      $scope='tuangou';      $url='https://e.dianping.com/dz-open/merchant/auth?';      $data=[        'app_key' =>$app_key,        'state' => $state,        'redirect_url'=>$redirect_url      ];      $postdata = http_build_query($data);      header("Location: $url$postdata");    } else {      trace('回调成功'.$auth_code);      //根据auth_code 获取session的授权码      $tmpInfo = $this->get_session($auth_code);      //根据$session $bid 获取店铺id      $shopInfo = $this->get_shopid($tmpInfo['access_token'],$tmpInfo['bid']);    }  }    //授权获取session  public function get_session($auth_code){    $app_key='1111111';    $app_secret='111111111111111111111';    $grant_type='authorization_code';    $redirect_url='https:你的路径/index/get_auth';    $data=[      'app_key' =>$app_key,      'app_secret' => $app_secret,      'redirect_url' =>$redirect_url,      'auth_code' =>$auth_code,      'grant_type' =>$grant_type    ];    $postdata = http_build_query($data);    $url='https://openapi.dianping.com/router/oauth/token';    $tmpInfo=$this->curl_post($url,$postdata);    return $tmpInfo;  }    //获取所有店铺的id  public function get_shopid($session,$bid){    $app_key='11111111';    $secret = "111111111111111111111111"; //秘钥    $sign_method='MD5';    $timestamp = date('Y-m-d H:i:s');    $format = 'json';    $v = 1;    $offset =0;    $limit = 20;    $url='https://openapi.dianping.com/router/oauth/session/scope?';    $data=[      'app_key' =>$app_key,      'sign_method' => $sign_method,      'timestamp' =>$timestamp,      'format' =>$format,      'v' =>$v,      'session' =>$session,      'bid' =>$bid,      'offset' =>$offset,      'limit' =>$limit,    ];    ksort($data);    $sign = $this->call_sign($secret, $data);    $data['sign'] = $sign;    $postdata = http_build_query($data);    $tmpInfo=$this->curl_get($url.$postdata);    return $tmpInfo;  }    public function createFile($data){    //创建一个文件    $file = fopen('MeiTuan.txt','w');     //写入文件    fwrite($file, json_encode($data));     //关闭文件    fclose($file);  }    public function readFile(){    $file = fopen('MeiTuan.txt','r');     $data = fread( $file , filesize('MeiTuan.txt') );     fclose($file);     return json_decode( $data , true );  }     function call_sign($secret, $data)  {    // 排序所有请求参数    ksort($data);    $src_value = "";    // 按照key1value1key2value2...keynvaluen拼接    foreach ($data as $key => $value) {      $src_value .= ($key . $value);    }    //计算md5    return md5($secret . $src_value . $secret);  }   //post请求  function curl_post($url,$postdata){    $curl = curl_init(); // 启动一个CURL会话    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测    curl_setopt($curl, CURLOPT_HTTPHEADER, array(      'Expect:'    )); // 解决数据包大不能提交    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); // Post提交的数据包    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查    $tmpInfo = curl_exec($curl); // 执行操作    if (curl_errno($curl)) {      echo 'Errno' . curl_error($curl);    }    curl_close($curl); // 关键CURL会话    $tmpInfo=json_decode($tmpInfo,true);    return $tmpInfo;  }   //get请求  private function curl_get($url) {    //初使化curl    $curl = curl_init();    //请求的url,由形参传入    curl_setopt($curl, CURLOPT_URL, $url);    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测    curl_setopt($curl, CURLOPT_HTTPHEADER, array(      'Expect:'    )); // 解决数据包大不能提交    //将得到的数据返回    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    //不处理头信息    curl_setopt($curl, CURLOPT_HEADER, 0);    //连接超过10秒超时    curl_setopt($curl, CURLOPT_TIMEOUT, 30);    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    //执行curl    $output = curl_exec($curl);    if (curl_errno($curl)) {      echo 'Errno' . curl_error($curl);    }    //关闭资源    curl_close($curl);    //返回内容    $tmpInfo=json_decode($output,true);    return $tmpInfo;  }}

这段代码是实现美团核销的功能。 亲测有效,如果有小伙伴需要的话,可否动动你的手指,给我点个关注呢。

来源地址:https://blog.csdn.net/weixin_47736740/article/details/132087655

--结束END--

本文标题: PHP Thinkphp5.0对接美团API接口 实现卡卷核销功能

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP Thinkphp5.0对接美团API接口 实现卡卷核销功能
    好久没有更新文章了。不知道关注我的小伙伴们是不是已经不在关注我了。最近在忙着一些推广运营的事情,所以没有更新, 这几天接到一个项目,需要对接美团API接口,实现核销功能。现在就来给大家展示具体代码, ...
    99+
    2023-09-17
    php android 开发语言
  • 如何在PHP中实现微信卡券核销接口
    随着电商行业的蓬勃发展,越来越多的企业开始了解和使用微信卡券功能,而为了更好地与用户互动,微信卡券核销接口的使用成为了一个必不可少的环节。本文将介绍如何在PHP中实现微信卡券核销接口。一、开发准备1.微信公众平台账号2.PHP开发环境3.微...
    99+
    2023-05-14
    PHP 微信卡券 核销接口
  • api接口对接如何实现,php如何对接api
    这篇文章来分享下api接口对接如何实现,还有源码,希望对新手有所帮助。 什么是API 我的回答:API( 应用程序编程接口):一般来说,这是一套明确定义的各种软件组件之间的通信方法。 什么是API?我们不妨用一个小故事展示出来: 研发人员A...
    99+
    2023-09-01
    php 开发语言
  • 使用python3.0 对接美团接口的实现示例
    目录前言一、请求接口的基本系统参数解析二、具体参数的代码实现总结提示:嗨咯,大家好,今天又来更新了  本章要和大家分享的是关于美团接口的实现方式以及部分代码的展示。 前言 ...
    99+
    2024-04-02
  • 实例解析:如何在PHP中正确实现接口功能
    在PHP编程中,接口(Interface)是一种非常重要的概念,用于定义一组方法的规范,而不包含其具体实现。接口能够帮助我们在代码中实现面向对象编程的多态特性,提高代码的可维护性和可扩...
    99+
    2024-04-02
  • 如何结合ECharts和php接口实现统计图的导出和分享功能
    如何结合ECharts和php接口实现统计图的导出和分享功能导语:ECharts是一款基于JavaScript的开源图表库,功能强大,可以轻松实现各种统计图表的展示。结合php接口,我们可以实现统计图表的导出和分享功能,使得统计数据更加直观...
    99+
    2023-12-18
    PHP echarts 统计图
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作