精华内容
下载资源
问答
  • php curl调用美团API

    千次阅读 2017-08-03 19:33:37
    前几天调用美团云的api发现api写的你要仔细抠字眼才能解决,api地址:https://www.mtyun.com/doc/api/common/common/index 注意api几个位置 1:(\n)的位置 2:请求参数名称的字典顺序排序 3:并以x-...

    前几天调用美团云的api发现api写的你要仔细抠字眼才能解决,api地址:https://www.mtyun.com/doc/api/common/common/index

    下面直接贴代码:

    	$key = '';
            $secret = '';
            $time=str_replace('+','.',date(DATE_ISO8601))."Z";
            $data=array('Format'=>'json','AWSAccessKeyId'=>$key,'Action'=>'DescribeInstanceTypes','SignatureVersion'=>2,'Timestamp'=>$time,'SignatureMethod'=>HmacSHA256);
            ksort($data);//参数名称的字典顺序排序(重小到大)
            $strdata=http_build_query($data);//x-www-form-urlencoded数据组装
            $hashdata="POST\nmosapi.meituan.com\n/mcs/v1\n".$strdata;//组装签名内容
            $sign= base64_encode( hash_hmac('sha256', $hashdata, $secret,true));//获取签名以HmacSHA256 算法进行Hash后,进行base64编码
           // $data['Timestamp']=urldecode($data['Timestamp']);
            $data['Signature']=$sign;
            $posturl="https://mosapi.meituan.com/mcs/v1";//.$strdata."&Signature=".$sign;
            $postData = http_build_query($data);//x-www-form-urlencoded数据组装
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $posturl);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
            curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);//允许重定向吧
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));//x-www-form-urlencoded编码
            curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); // Post提交的数据包
            //curl_setopt($curl, CURLOPT_HEADER, 1);//返回请求head头
            //curl_setopt($curl, CURLOPT_NOBODY, 1);//不返回body部分内容
            //curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
            $data = curl_exec($curl);
            curl_close($curl);
            print_r($data);


    注意api几个位置

    1:(\n)的位置

    2:请求参数名称的字典顺序排序

    3:并以x-www-form-urlencoded编码

    按官方的完整的拼接的内容为

    POST
    mosapi.meituan.com
    /mcs/v1
    AWSAccessKeyId=8b5ad48388a347c185b6b7b0ba9e6225&Action=GetBalance&Format=json&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-11-14T03%3A10%3A55.000Z

    这给的只是python里面,php的拼接式POST\nmosapi.meituan.com\n/mcs/v1\nAWSAccessKeyId=8b5ad48388a347c185b6b7b0ba9e6225&Action=GetBalance&Format=json&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-11-14T03%3A10%3A55.000Z

    4:对上面的拼接内容以以HmacSHA256 算法进行Hash后,进行base64编码

    以为这里成功了还有组装curl呢,curl组装不好后台获取的内容可能只有header部分没有穿的参数。




    展开全文
  • 外卖返利网站 饿了么美团 对接api 然后做一个简单的二级分销 小程序和h5 美团 饿了么返利逻辑很简单 就是对接个api 然后也是用api获取订单 然后根据返回的订单数据做个分销返利即可,自购返利,1级返利,2级返利,...

    外卖返利网站 饿了么美团 对接api 然后做一个简单的二级分销

    小程序和h5 美团 饿了么返利逻辑很简单 就是对接个api 然后也是用api获取订单

    然后根据返回的订单数据做个分销返利即可,自购返利,1级返利,2级返利,团长返利

    2021外卖cps小程序项目|外卖红包cps带好友返利佣金分销系统程序|饿了么美团联盟源码

    美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码

    源代码地址

    http://www.mybei.cn

    成品展示

    在这里插入图片描述

    截图

    在这里插入图片描述

    步骤

    • 下载以上源代码到本地

    http://www.mybei.cn

    代码

    <template>
      <!--动态样式-->
      <view class="container" wx:style="{{dynamicStyle}}">
        <!--数据绑定-->
        <view class="title">{{title}}</view>
        <!--计算属性数据绑定-->
        <view class="title">{{reversedTitle}}</view>
        <view class="list">
          <!--循环渲染,动态类名,事件处理内联传参-->
          <view wx:for="{{list}}" wx:key="id" class="list-item" wx:class="{{ {active:item.active} }}"
                bindtap="handleTap(index)">
            <view>{{item.content}}</view>
            <!--循环内部双向数据绑定-->
            <input type="text" wx:model="{{list[index].content}}"/>
          </view>
        </view>
        <!--自定义组件获取实例,双向绑定,自定义双向绑定属性及事件-->
        <custom-input wx:ref="ci" wx:model="{{customInfo}}" wx:model-prop="info" wx:model-event="change"/>
        <!--动态组件,is传入组件名字符串,可使用的组件需要在json中注册,全局注册也生效-->
        <component is="{{current}}"></component>
        <!--显示/隐藏dom-->
        <view class="bottom" wx:show="{{showBottom}}">
          <!--模板条件编译,__mpx_mode__为框架注入的环境变量,条件判断为false的模板不会生成到dist-->
          <view wx:if="{{__mpx_mode__ === 'wx'}}">wx env</view>
          <view wx:if="{{__mpx_mode__ === 'ali'}}">ali env</view>
        </view>
      </view>
    </template>
     
    <script>
      import { createPage } from '@mpxjs/core'
      createPage({
        data: {
          // 动态样式和类名也可以使用computed返回
          dynamicStyle: {
            fontSize: '16px',
            color: 'red'
          },
          title: 'hello world',
          list: [
            {
              content: '全军出击',
              id: 0,
              active: false
            },
            {
              content: '猥琐发育,别浪',
              id: 1,
              active: false
            }
          ],
          customInfo: {
            title: 'test',
            content: 'test content'
          },
          current: 'com-a',
          showBottom: false
        },
        computed: {
          reversedTitle () {
            return this.title.split('').reverse().join('')
          }
        },
        watch: {
          title: {
            handler (val, oldVal) {
              console.log(val, oldVal)
            },
            immediate: true
          }
        },
        handleTap (index) {
          // 处理函数直接通过参数获取当前点击的index,清晰简洁
          this.list[index].active = !this.list[index].active
        },
        onReady () {
          setTimeout(() => {
            // 更新数据,同时关联的计算属性reversedTitle也会更新
            this.title = '你好,世界'
            // 此时动态组件会从com-a切换为com-b
            this.current = 'com-b'
          }, 1000)
        }
      })
    </script>
     
    <script type="application/json">
      {
        "usingComponents": {
          "custom-input": "../components/custom-input",
          "com-a": "../components/com-a",
          "com-b": "../components/com-b"
        }
      }
    </script>
     
    <style lang="stylus">
      .container
        position absolute
        width 100%
    </style>
    
    展开全文
  • 饿了么 饿百 美团 外卖订单API

    千次阅读 2020-07-29 17:02:07
    美团api文档中没有直接返回订单列表 只返回了订单号 利用订单号查询详情 /** * 美团拉取订单列表 */ function sign($data,$secret,$url,$app_id){ ksort($data); //签名前完整字符串 $s = ''; foreach ($...

    美团:
    查询订单列表:

    • 美团拉取订单列表
    • 美团api文档中没有直接返回订单列表 只返回了订单号 利用订单号查询详情
    
    /**
     * 美团拉取订单列表
     */
    function sign($data,$secret,$url,$app_id){
    
        ksort($data);
    //签名前完整字符串
        $s = '';
        foreach ($data as $a => $v) {
            if (is_array($data[$a])) {
                $s .= '&' . $a . '=' . json_encode($data[$a]);
                $data[$a] = json_encode($data[$a]);
            } else {
                $s .= '&' . $a . '=' . $v;
            }
        }
        $urls = $url . '?' . ltrim($s, '&') . $secret;
    //签名
        $sig = md5($urls);
        $temp = $url . '?' . ltrim($s, '&') . '&sig=' . $sig;
    
        return $temp;
    }
    
    $url = 'https://waimaiopen.meituan.com/api/v1/ecommerce/order/getOrderIdByDaySeq';
    
    $data = [
        'app_id' => appid,
        'timestamp' => time(),
        'app_poi_code'=>8489836,
        'date_time'=>20200725,
        'day_seq_start'=>1,
        'day_seq_end'=>2
    ];
    
    $app_id = "4277";//appid
    $secret = '';//secret
    
    $res = sign($data,$secret,$url,$app_id);
    $as = file_get_contents($res);
    //返回数据转数组
    $arr = json_decode($as, true);
    //print_r($arr);
    $orderlist = $arr["data"];
    //订单转数组
    //$arrlist = json_decode($orderlist,true);
    $arrlist = json_decode($orderlist, true, 512, JSON_BIGINT_AS_STRING);
    //print_r($arrlist);
    //循环遍历订单号
    foreach ($arrlist["order_ids"] as $key=>$value){
    
       // echo $value;
    
    
    //查询订单详情
        //查询订单详情
        $url = 'https://waimaiopen.meituan.com/api/v1/order/getOrderDetail';
    
        $data = [
            'app_id' => 4277,
            'timestamp' => time(),
            'order_id' =>$value
    
        ];
    
    //    print_r($data);
    
    
    
    
        // app_secret
        $d = '';
        ksort($data);
        //签名前完整字符串
        $s = '';
        foreach ($data as $a => $v) {
            if (is_array($data[$a])) {
                $s .= '&' . $a . '=' . json_encode($data[$a]);
                $data[$a] = json_encode($data[$a]);
            } else {
                $s .= '&' . $a . '=' . $v;
            }
        }
        $urls = $url . '?' . ltrim($s, '&') . $d;
    
        //签名
        $sig = md5($urls);
        $url = $url . '?' . ltrim($s, '&') . '&sig=' . $sig;
        $as = file_get_contents($url);
        //返回数据转数组
        $arr = json_decode($as, true);
    
        $order_id = $arr["data"]["order_id"];
        //APP方门店id
        $app_poi_code = $arr["data"]["app_poi_code"];
        $recipient_phone = $arr["data"]["recipient_phone"];
    
    
    
    }
    
    

    饿了么:
    拉取订单列表

    饿了么商家开发平台下载sdk

    require '../elm/vendor/autoload.php';
    use ElemeOpenApi\Api\OrderService;
    use ElemeOpenApi\Config\Config;
    use ElemeOpenApi\OAuth\OAuthClient;
    
    
    $app_key = "";//kOtYKWYtSU
    $app_secret = "";//
    $token = ""; //
    $config = new Config($app_key, $app_secret, true);
    
    $order_service = new OrderService($token, $config);
    
    
    $shop_id = 17382;//店铺id
    $page_no = 1;
    $page_size = 5;
    $date = "2019-01-05";
    $result = $order_service->get_all_orders($shop_id, $page_no, $page_size, $date);
    echo "<pre>";
    print_r($result);
    echo "</pre>";
    
    
    

    饿百新零售 拉取订单列表
    饿百开发者后台下载sdk

    
    /**
     * 饿百 拉取订单列表
     */
    
     
    include "v3/Openapi3.0.php";
    
    
    $config = array();
    $config['encrypt'] = ''; //加密方式;普通对接对解放为空
    $config['source'] = ''; //填写对应的source
    $config['secret'] = ''; //填写对应的secret
    $config['url'] = 'https://api-be.ele.me/';
    /**
     * 拉取订单  order.list
     */
    $cmd = 'order.list';
    $data = array();
    //{"start_time":1595520000,"end_time":1595606399,"baidu_shop_id":"test_195978_61913","status":"","page":1}, ticket=5D67EC2B-D793-44AC-A0A9-2B68DF8873B0, encrypt=}
    $data['baidu_shop_id'] = '42267045026'; //baidu_shop_id :22267048735
    $data["page"]='1';
    $data["start_time"]='1593587977';
    $data["end_time"]='1595575178';
    $data["status"]='';
    $obj = new Openapi($config);
    $obj->send($cmd,$data);
    $arr = $obj->getLastBody();
    
    //获取数据
    if($arr["errno"]=='0'){
        $list = $arr["data"]["list"];
        print_r($list);
        foreach ($list as $key => $value){
           echo $key;
        }
    }
    
    展开全文
  • 今天我们研究如何跟美团对接,同步数据到数据库 1. 首先我们找到我们需要的接口(例如:food/list) 2.点进去之后 3.我们开始一个一个的拼接参数 (1)时间戳 这个是当前的秒值,我们可以在后台用代码来实现 ...

    今天我们研究如何跟美团对接,同步数据到数据库

    1. 首先我们找到我们需要的接口(例如:food/list)

    在这里插入图片描述

    2.点进去之后

    在这里插入图片描述

    3.我们开始一个一个的拼接参数

    (1)时间戳

    在这里插入图片描述
    这个是当前的秒值,我们可以在后台用代码来实现

    LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
    long l = ldt.toEpochSecond(ZoneOffset.ofHours(8));
    System.out.println(l);
    

    (2)app_id

    4. List item
    在这里插入图片描述

    (3)门店ID

    在一个就是签名,我们先放一边,有了门店ID一会用工具先获取一下
    在这里插入图片描述

    (4)签名

    现在除了签名,剩下的三个参数都有了,现在我们来获取最后的签名
    在这里插入图片描述
    生成之后,浏览器输入如下路径进行访问
    如果我们(获取到了数据)那么就可以进行下一步了,如果(没有)那就请注意提示的信息。

    4.我们开始写后台的代码

    (1)首先第一步我们得到我们需要的四个参数,并拼接

        Timestamp :时间戳(如上的代码可以获取)
        app_id:填写自己的APP方的id
        App_poi_code:填写自己的门店ID
    

    剩下最重要的签名sig,现在我们知道生成签名呢需要三个参数,好我们开始拼接以上三个参数
    在这里插入图片描述

    // 美团商品列表的路径
    String url = "https://waimaiopen.meituan.com/api/v1/food/list";
    // 拼接参数
    String md5Input = "";
    md5Input += "app_id=" + MeituanWMService.MTAPPID + "&";
    md5Input += "app_poi_code=" + "****" + "&";
    md5Input += "timestamp=" + String.valueOf(timestamp);
    

    (2)有了路径之后我们开始生成签名(代码如下密钥是必填的)

    在这里插入图片描述
    具体生成方法如下

       public static String genSig(String baseUrl) throws ApiSysException {
    	    String str = null;
    
    	try {
    		MessageDigest md = MessageDigest.getInstance("MD5");
    		str = byte2hex(md.digest(baseUrl.getBytes("utf-8")));
    		return str;
    	} catch (NoSuchAlgorithmException var3) {
    		throw new ApiSysException(ErrorEnum.SYS_ERR);
    	} catch (UnsupportedEncodingException var4) {
    		throw new ApiSysException(ErrorEnum.SYS_ERR);
    	}
    }
    
    private static String byte2hex(byte[] b) {
    	StringBuffer buf = new StringBuffer();
    
    	for (int offset = 0; offset < b.length; ++offset) {
    		int i = b[offset];
    		if (i < 0) {
    			i += 256;
    		}
    
    		if (i < 16) {
    			buf.append("0");
    		}
    
    		buf.append(Integer.toHexString(i));
    	}
    
    	return buf.toString();
    }
    

    (3)得到签名之后,继续拼接

    在这里插入图片描述

    (4)解析路径

    // 解析路径
    str2 = MessageController.is(url + "?" + md5Input, "utf-8");
    

    具体生成方法如下

     public static String is(String strURL, String charset) {
    	String str = getContentFromUrl(strURL, charset);
    	return str;
    }
    
    /**
     * 通过 url网址 从网页上获取网页内容
     * 
     * @param myUrl(链接地址)
     * @param charset(字符编码)
     * @return (返回字符串)
     */
    public static String getContentFromUrl(String myUrl, String charset) {
    	StringBuffer sb = new StringBuffer();
    	URL url;
    	try {
    		url = new URL(myUrl);
    		URLConnection conn = url.openConnection();
    		InputStream is = conn.getInputStream();
    		Scanner sc = new Scanner(is, charset);
    		while (sc.hasNextLine()) {
    			sb.append(sc.nextLine()).append("\r\n");
    		}
    		sc.close();
    		is.close();
    	} catch (MalformedURLException e) {
    		e.printStackTrace();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    	return sb.toString();
    }
    

    (5)得到内容之后,因为格式不正确,我们还要继续的截取(可以在优化)

    str2 = str2.substring(8, str2.length() - 3);
    

    (6)得到内容之后,我们要解析,放到实体类当中,创建实体类

    public class MeituanApidata {
    
    private Long app_food_code;
    private String app_poi_code;
    private Float box_num;
    private Float box_price;
    private String category_name;
    private Integer ctime;
    private String description;
    private Integer is_sold_out;
    private Integer max_order_count;
    private Integer min_order_count;
    private String name;
    private String picture;
    private Float price;
    private Integer sequence;
    private String skus;
    private String unit;
    private Integer utime;
    Get set....
    
    }
    

    (7)创建完成之后进行解析

    在这里插入图片描述

       // 解析json
       List<MeituanApidata> taskNodes = JSONArray.parseArray(str2, MeituanApidata.class);
    

    (8)携带taskNodes 调用service

    在这里插入图片描述
    我们注意到响应的参数中还有一个json数组
    在这里插入图片描述
    我们可以在创建一个实体类,进行嵌套for循环,得到我们skus中的值
    在这里插入图片描述
    **

    剩下的就是我们的常规代码没什么难度了,如果有什么不懂的可以再问我!!!

    **

    展开全文
  • 首先注册并登录订单侠开放平台:https://www.dingdanxia.com/user/register/index.html 淘宝联盟API接口对接步骤
  • 但是,经过对2016全年酒店后台研发组所有面向C端系统的线上事故分析后发现,在许多情况下,由于事故处理预案的缺失或者预案本身的不可靠,以及开发人员故障处理经验的缺失,造成大家在各种报警之中自乱了阵脚,从而...
  • 一、背景1.1 API网关是什么?API网关是随着微服务(Microservice)概念兴起的一种架构模式。原本一个庞大的单体应用(All in one)业务系统被拆分成许多微服务(Mic...
  • 外卖红包小程序 美团外卖小程序 饿了么外卖小程序 美团饿了吗红包,先领红包再下单。外卖红包,cps分成,别人领红包下单,你拿佣金。 Github 地址 https://gitee.com/caonima008/waimai_hongbao 上线案例 技术栈 ...
  • 开发者如何接入美团联盟?淘客APP如何增加美团CPS?如何申请饿了么CPS接口? 一、美团联盟: 目前美团联盟才开始发展, 到 美团联盟https://union.meituan.com/ 官网 注册一个帐号 注册后可手动生成推广链接。 二...
  • 京东&美团研发面经

    千次阅读 2018-09-14 14:33:32
    美团点评 后台开发工程师 1 京东提前批Java开发 电话面试 本来想等面完再发个面经,等了半个月了没等到。 一面: 0 自我介绍,讲一下项目中的多线程实现 1 Java的线程池的参数,拒绝策略,阻塞队列等...
  • 开发美团接口

    2019-09-20 10:15:59
    美团后台接口 1.使用美团的签名工具不需要在加app_secret,它自动添加 2.创建应用问题 3.计算签名将所有参数(sig除外)按照参数名的字母顺序排序,并用&连接: ,这里的所有参数是指接口用到的参数 这里...
  • 举一个简单的例子,假如有一个博客系统提供一个Web API,模式是这样http://superblogging/blogs/{blog-name},很简单,将{blog-name}替换为我们的blog名字,往这个URL发送一个HTTP PUT或者POST请求,HTTP的body部分...
  • 美团技术架构

    万次阅读 2016-04-20 10:30:12
    追求极致:从技术细节看美团架构  很多人认为,电商都没有什么技术含量,没有什么门槛。可是,美团能从千团大战中脱颖而出,成为国内最大的本地生活服务平台,必然不是靠运气。美团网技术委员会主席夏...
  • 美团logan初探总结

    千次阅读 2019-02-14 15:41:34
    总的来说logan还是个半成品的开源项目,可能美团官方使用的已经是个成品了,但是后台没有开源,所以我们目前只能用他们的前段开源项目来达到本地日志管理的功能; 然后在官网的介绍文章里说了很多高大上的东西,其实...
  • 2020年下半年美团上线了全品类推广平台:美团分销联盟。加上之前的美团联盟,现阶段美团总共有四个可以推广的平台。分别是对接企业推广的美团分销联盟和美团联盟,对接个人推广者的美团福利宝和外卖每天赚。推出这么...
  • 登录美团联盟后台,在联盟API接口列表找到一个名称为【订单回推接口】的栏目。 对,这个就是我们需要的接口,点进去查看详情。 和大部分回调接口一样,这个接口不需要接入方主动调用,而是接入方提供一个接口给...
  • Spark在美团的实践

    2020-07-09 09:18:12
    美团是数据驱动的互联网服务,用户每天在美团上的点击、浏览、下单支付行为都会产生海量的日志,这些日志数据将被汇总处理、分析、挖掘与学习,为美团的各种推荐、搜索系统甚至公司战略目标制定提供数据支持。...
  • Serverless是目前比较热门的技术话题,各大云平台以及互联网大厂内部都在积极建设Serverless产品。本文将介绍美团Serverless产品在落地过程中的一些实践经验,其中包括技...
  • 美团面试题

    2019-08-15 21:18:17
    美团一面: 中间省略掉大概几个问题,因为我不记得了,下面记得的基本都是我没怎么答好的。 1、了解SOA,微服务吗? 什么是微服务? 1、由一些独立的服务共同组成系统 2、单独部署,跑在自己的进程里 3、每个...
  • 美团外卖演化之路

    千次阅读 2017-01-06 15:25:16
    美团外卖演化之路设计之初外卖app,外卖web 移动后台,web后台 DB 订单列表电话预订目标:快速开发,快速调整流程,快速发布上线 信息爆炸化后,走上模块化之后~~信息爆炸化时的系统用户业务系统:app i版 web 商家...
  • 美团点评酒旅运营需求在离线场景下,已经得到了较为系统化的支持,通过对离线数据收集、挖掘,可对目标用户进行T+1触达,通过向目标用户发送Push等多种方式,在一定程度上提高转化率。但T+1本身的延迟性会导致用户在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,578
精华内容 2,231
关键字:

美团后台api