首页新闻找找看学习计划

在php API接口中怎么获取返回的数据,并返回获取成功标识

0
悬赏园豆:5 [已解决问题] 解决于 2018-06-14 10:18

在对接美团外卖,新手,怎么获取回掉地址中的数据,并返回给美团成功标识?

一下方法可以获取数据,那怎么返回给美团 success呢??

public function cancel_mt_address(){
    header("Content-type:text/html; charset=utf8");
      $demo = array(
          'data' => 'success'
      );
      $demo_json = json_encode($demo);
      $postStr = file_get_contents("php://input");
      if($postStr != NULL){
           $ps = print_r($postStr, 1);
           //$this->writeLog("门店映射回调返回数据postStr:", $ps);
           log::write('yangzl', log::EMERG);
           log::write($ps, log::EMERG);
    
           echo $demo_json;
      }else{
          echo $demo_json;
          // $this->writeLog('门店映射回调返回数据data:', $demo_json);
           log::write('yangzl2', log::EMERG);
           log::write($demo_json, log::EMERG);
      }

}
yangzailu的主页 yangzailu | 初学一级 | 园豆:9
提问于:2018-06-05 14:33
< >
分享
最佳答案
1

curl函数了解一下  举个例子

$url ="http://xflshop.sevensme.com/index.php?m=orderapi&a=ChengE_back_url";
    $ch = curl_init();
    $timeout = 30;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "jb51.net's CURL Example beta");
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
    $file_contents = json_decode($file_contents,true);

$json_data就是向接口发送的数据   $file_contents就是返回的数据

收获园豆:3
河畔 | 小虾三级 |园豆:723 | 2018-06-05 20:04

你这是调用别人的接口,获取的返货数据,那么你怎么告诉他你收到了,怎么回复第三次握手?

yangzailu | 园豆:9 (初学一级) | 2018-06-07 13:41

@yangzailu: 这种接口哪有第三次交互, 双向的接口都是你提供一个url,美团那边会即时向这个url发送数据,获得数据处理完了返回成功或者失败.

河畔 | 园豆:723 (小虾三级) | 2018-06-07 14:01

@yangzailu: 一般三次以上握手都是websocket来做的 api接口不可能的,用api的话那就调用2次

河畔 | 园豆:723 (小虾三级) | 2018-06-07 14:02
其他回答(1)
0

个人观点,希望采纳.

1. 接口返回一般以xml和json的形式去发送, 而你是以text/html的形式发送的头部信息.所以,数据会直接打印到页面上.

2. json的头部信息是: header('Content-type:application/json;charset=utf-8'), 返回值应该是 echo json_encode(['code' => 1, 'status' =>'success', 'message' => '请求成功', 'data' => []]);

3. 建议使用框架来写接口, 比如: yii2的yii\rest\controller底层接口类, 你只需要继承. 

收获园豆:2
看不到的世界 | 园豆:206 (菜鸟二级) | 2018-06-13 10:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册