【360点睛】网页转化数据API回传数据代码

最近公司需要落地页对接点睛数据回传,以前没有做过,看了一下百度的OCPC改了一下搞定,以下是代码,记录一下:

1、公共的定义

// Key 值
const QIHU_KEY = '5lhr09eravspif4jiq6r';
// Secret 值
const QIHU_SIGN = 'nit7uforhfok1qa15yourz5rgphon30z';
// 循环的次数
const RETRY_TIMES = 3;

2、这边是回传数据的信息,放在提交数据或者完成某个需求之前,如果是之后的话跳转链接最好加个延迟。

// 360 雨晴
$content=array(
   "data"=>array(
     "request_time"=>getTime(),  // 当前时间戳
     "data_industry"=>"ocpc_ps_convert",  // 推广的类型
     "data_detail"=>array(
       "qhclickid"=>$_COOKIE['qhclickid'],  // 这边是落地页链接的qhclickid的值,可以设置cookie,再拿取
       "trans_id"=>md5($OrderData['order_code']),  // 订单号,需md5加密
       "event"=>"ORDER",   // 订单类型
       "event_time"=>getTime(),  // 当前时间戳
       "event_param"=>array(
         "value"=>$OrderData['order_amount']*100  // 这边是金额,*100是因为接收的值好像只能是分
       ),
     ),
   ),
 );
//  这边是接收地址
 $logidUrl = 'https://convert.dop.360.cn/uploadWebConvert';
//  调用方法,传参
 $this -> sendConvertData($logidUrl,$content);

3、发送数据方法,单独拎出来的。

/**
       * 发送数据
       * @param String $url   请求的地址
       * @param Array $content POST的数据
       * @return String
       */
      public function sendConvertData($url,$content){
        $reqData = json_encode($content);
        // 所有数据都需要md5加密
        $appSign = md5(self::QIHU_SIGN.$reqData);
        $ch = curl_init();
        if(substr($url,0,5)=='https'){
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          'App-Key:'.self::QIHU_KEY,
          'App-Sign:'.$appSign,
          'Content-Type: application/json; charset=utf-8',
          'Content-Length: ' . strlen($reqData)
        ));
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $reqData);

        echo 'req data: ' . $reqData . "<br>";
        //添加重试,重试次数为3,以防数据漏掉
        for ($i = 0; $i < self::RETRY_TIMES; $i++) {
            $response = curl_exec($ch);
            $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            if ($httpCode === 200) {
                $res = json_decode($response, true);
                print_r($res);
                // status为4,代表服务端异常,可添加重试
                $status = $res['errno'];
                if ($status !== 1) {
                    curl_close($ch);
                    return $status === 0;
                }
            }
        }
        if($error=curl_error($ch)){
          die($error);
        }
        curl_close($ch);
        return false;
      }

4、返回结果这样就OK了

{"errno":0,"error":"Success"}

以上就是全部代码,这边的应用场景是支付信息完成需要统计,就这样吧。有什么需要改进的或者不对的地方请留言。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值