一、功能简要介绍

1、根据需求,用户在美团大众点评中所购买的门票在自己的系统上可以核销,同时把核销信息存储到自己的系统里。

2、美团点评API文档地址:https://open.dianping.com/document/v2?rootDocId=5000

二、开发步骤:

1、用点评管家账号登录文档,相应文档说明:https://open.dianping.com/document/v2?docId=6000136&rootDocId=1000

2 、选好自己相应的应用型,审核通过之后,就可以用平台系统的测试的数据就行接口调用

3、在大众点评app购买相应票,根据验券核销API文档(根据业务需求选择的类型是自用型)调取查询券、验券即核销券的接口,代码如下:

//查询券、验券

public function prepare(){

// $arr 为数组 里面为应用参数

$appKey = "1ef04****e3a8"; //key

$secret = "dd8a291f9f*****4e3fbd9be6ff"; //秘钥

$timestamp = date('Y-m-d H:i:s');

$format = 'json';

$v = 1;

$sign_method = 'MD5';

$qr_code = '257***4228';

$open_shop_uuid = '34d5902420ca****48e941a38d773';

$session = 'bbf7059256aaf3f1****3b4d9c0816cf819b7';

$data = [

'app_key' => $appKey,

'timestamp' => $timestamp,

'sign_method' => $sign_method,

'format' => $format,

'v' => $v,

'session' => $session,

];

$arr = [

'requestid'=>'123',

'receipt_code' => $qr_code,

//'qr_code'=>$qr_code,

'open_shop_uuid' => $open_shop_uuid,

//'count'=>1,

//'app_shop_account' =>'test',

// 'app_shop_accountname' =>'test1',

];

$data = array_merge($data, $arr);

ksort($data);

$sign = $this->cal_sign($secret, $data);//获取签名

$data['sign'] = $sign;

// $data['count'] = $sign;

// $data['app_shop_account'] = $sign;

// $data['app_shop_accountname'] = $sign;

$data = array_merge($data, $arr);

$postdata = http_build_query($data);

$url = 'https://openapi.dianping.com/router/tuangou/receipt/prepare';//输码查询券

//$url = 'https://openapi.dianping.com/router/tuangou/receipt/scanprepare';//扫码查询券

//$url = 'https://openapi.dianping.com/router/tuangou/receipt/consume';//验券

$tmpInfo=$this->curl_post($url,$postdata);

var_dump($tmpInfo);

}

/**

* 计算签名

*

* @param $app_secret 三方app_secret

* @param $req_param 请求参数集合,包括公共参数和业务参数

* @return string md5签名

*/

function cal_sign($app_secret, $req_param)

{

// 排序所有请求参数

ksort($req_param);

$src_value = "";

// 按照key1value1key2value2...keynvaluen拼接

foreach ($req_param as $key => $value) {

$src_value .= ($key . $value);

}

//计算md5

return md5($app_secret . $src_value . $app_secret);

}

//post请求

private 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;

}

运用平台提供的相应参数,流程能顺利走通。

4、当放到线上的时候,选择相应的进行上线,首先要去平台“我的应用”设置回调地址,然后再授权地址上加上回调地址,还要进行授权去获取session,然后通过session去获取店铺的id

回调地址:

授权地址:

5、授权地址:

授权地址可以获取auth_code,根据这个值去换取session,换取session后可以去换取店铺id

//获取auth_code

public function get_auth(){

$auth_code = input('auth_code');

if(!isset($auth_code)) {

$app_key='1ef*****3a8';

$state='teststate';

$redirect_url='https://****/admin/Dian/get_auth';

$scope='tuangou';

$url='https://e.dianping.com/dz-open/merchant/auth?';

$data=[

'app_key' =>$app_key,

'state' => $state,

'redirect_url' =>$redirect_url,

'scope' =>$scope,

];

$postdata = http_build_query($data);

Header("Location: $url$postdata");

} else {

var_dump($auth_code);die();

}

}

//获取session

public function get_session(){

$app_key='1ef0*****e3a8';

$app_secret='dd8a291******bd9be6ff';

$auth_code='4e027519e******a6a9d1ee5f2';

$grant_type='authorization_code';

$redirect_url='https://*****/admin/Dian/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);

var_dump($tmpInfo);

}

//获取所有店铺的id

public function get_shopid(){

$app_key='1ef04*****e3a8';

$secret = "dd8a29*****fbd9be6ff"; //秘钥

$sign_method='MD5';

$timestamp = date('Y-m-d H:i:s');

$format = 'json';

$v = 1;

//$session = 'f44d594ab895c******85b70bade02c';

$session = 'bbf7059256aaf3*******0816cf819b7';

$bid='5da1aab********5ad457a2c';//和session一起返回的

$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->cal_sign($secret, $data);

$data['sign'] = $sign;

$postdata = http_build_query($data);

$tmpInfo=$this->curl_get($url.$postdata);

var_dump($tmpInfo);

}

到此这篇关于PHP 对接美团大众点评团购券(门票)的开发步骤的文章就介绍到这了,更多相关PHP美团大众点评团购券内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

php实现团购功能,PHP 对接美团大众点评团购券(门票)的开发步骤相关推荐

  1. PHP 对接美团大众点评团购券(门票)

    一.功能简要介绍 1.根据需求,用户在美团大众点评中所购买的门票在自己的系统上可以核销,同时把核销信息存储到自己的系统里. 2.美团点评API文档地址:https://open.dianping.co ...

  2. PHP 对接美团大众点评团购券的开发步骤

    这篇文章主要介绍了PHP 对接美团大众点评团购券(门票)的开发步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下. 一.功能简要介绍 1.根据需 ...

  3. 内测同城团购功能,快手的胜算大不大?

    如果你五一去过四川南充,那么你肯定对快手"美食节"念念不忘. 整条街和街上的千家美食店都是快手赞助,在游客享受美食的同时,处处都是快手露出. 不仅如此,快手还在当地提出了" ...

  4. java实现团购功能_[Java教程]jquery组件团购倒计时功能

    [Java教程]jquery组件团购倒计时功能 0 2014-05-12 12:00:04 本文网址:http://www.shaoqun.com/a/90954.html *特别声明:以上内容来自于 ...

  5. 仿团购app连接mysql_美团App(仿) - iOS开发

    模仿美团App 本项目是用Swift开发,StoryBoard 和 Xib 快速布局的. 这篇文是记录文,项目完成之后,再整理用到的知识,发一篇有条理的文 使用Xib开发的教程链接:xib使用教程 商 ...

  6. 修改科汛CMS团购功能 修改往期团购显示

    找到以下文件 shop/GroupBuy.asp 替换 242 到248行 If Request("flag")<>"history" Then  ...

  7. 微信小程序将支持分享到朋友圈;美团入局社区团购;Kotlin 1.4-M3 发布 | 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  8. 为何美团、抖音都潜入社群团购?毫无疑问社群团购是大趋势。

    为何美团.抖音都潜入社群团购?毫无疑问社群团购是大趋势. 社群团购.社群团购覆盖面广.高增长.轻创业.受资本青睐,解决短期痛点,符合长期发展,是实实在在卖货到终端消费者的商业模式,,是实体结合线上的一 ...

  9. 美团拼多多挑起社区团购新战事,谁能“见血封喉”?

    美团也要攻入下沉市场了! 11月12日上午11点,美团团节社在西安开城.仅仅12小时,入驻的商家之一华莱士汉堡销量就近3万单,其销售额高达80万元.原价76元.现价27元的华莱士双人豪华套餐.原价80 ...

最新文章

  1. 这不是特效也不是魔术!
  2. 7-5 排列的字典序问题 (10 分)(思路加详解全排列问题+vector容器做法)Come Baby!
  3. L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
  4. 用haslib给字符加密
  5. [其他] 10种技巧可提升Android应用运行效果
  6. FPGA 按键控制数码管
  7. 微信h5棋牌以及下载类推广如何在微信中做好防封防屏蔽技术
  8. html手写笔记照片,html手写代码学习笔记
  9. 用Fiddler做抓包分析详解
  10. Redis 使用 scan 命令代替 keys
  11. vscode 支持 X11 Forwarding
  12. 【转】现学现用WPS,小技巧大帮助
  13. [转]Cisco小失误,大麻烦
  14. 数据结构与算法真的那么重要么?
  15. uniapp vue 身份证号校验
  16. 大数据主要学习什么?
  17. 2019-安卓开发环境搭建-经验分享-Eclipse(主要内容)+Android Studio
  18. Maven的settings.xml配置详解-阿里云仓库
  19. 抛弃了wordpress
  20. 炫酷登录注册界面【超级简单 jQuery+JS+HTML+CSS实现】

热门文章

  1. 数码相机和单反相机有什么区别?(已解决)
  2. 重温马云英文演讲:最伟大的成功
  3. 十二时辰和人体经络图文
  4. cache 是什么意思 它包括的L1,L2,L3分别是什么东西
  5. 项目管理必看书籍推荐,15本全送给你
  6. ubuntu 编译安装opencv官网教程
  7. win10系统显示打印机未连接到服务器,win10系统无法连接到打印机的解决方法
  8. ogm session_Hibernate OGM:降低进入NoSQL的障碍
  9. 2021.09 编程题 37【Python一级题目解析】
  10. 数据库系统概论---第五章:数据库完整性(实体、参照物、用户定义完整性 + constrain + domain + assert +tigger)