CheckActiveHelper.php 4.67 KB
<?php

namespace common\helpers;

use Exception;
use function curl_init;
use function curl_setopt;
use function stripos;
use function http_build_query;
use function curl_exec;
use function curl_getinfo;
use function in_array;
use function curl_close;
use function json_decode;
use function file_get_contents;
use function base64_encode;

class CheckActiveHelper
{
    const CHECK_URL = 'http://zhoundlee.com/app_qrv';

    const ACTIVE_URL = 'http://zhoundlee.com/app_activate';

    /**
     * 调用智纹保校验接口
     * @param $img 图片内容   file	是	用户上传的图片,文件类型(二进制图片数据)
     * @param $fileName 图片名称   string	是	用户上传的图片原始名字
     *   格式: IMG_防伪标签uuid_时间戳.jpg 注意: 1) 中间两个下划线 _ 不可省略 2) 微信扫码出来的uuid参数中的版本号部分去掉@v1.0
     * @return bool|string ""
     *  content	object	内容
     *  status	string	状态码【待定】(authentic:正品 fake:假货 其他状态码:请闵总帮忙补充)
     *  imgUrl	file 返回的图片状态 备注:请返回完整的URL路径,例如:http://check1.bosch-smartlife.com/images/success.png
     */
    public static function checkAppQrv($imageFullPath, $fileName)
    {
        try {
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, self::CHECK_URL);

            // 获取图片内容
            $fp = file_get_contents($imageFullPath); // 获取图片的二进制数据
            $image = base64_encode($fp); //图片二进制数据base64编码
            // 设置post数据
            $post_data = array(
                "img" => $image,
                "fileName" => $fileName
            );
            // 如果是https协议
            if (stripos(self::CHECK_URL, "https://") !== FALSE) {
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
                curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
                //CURL_SSLVERSION_TLSv1
                curl_setopt($curl, CURLOPT_SSLVERSION, 1);
            }
            // 通过POST方式提交
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));

            // 超时时间
            curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);
            curl_setopt($curl, CURLOPT_TIMEOUT, 60);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            // 返回内容
            $callbcak = curl_exec($curl);
            //http状态码
            $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
            // 处理返回状态
            if (in_array($httpCode, array(400, 403)))
                return "";
            // 关闭,释放资源
            curl_close($curl);
            //返回内容JSON_DECODE
            return json_decode($callbcak, true);
        } catch (Exception $e) {
            return false;
        }
    }

    /**
     * 防伪标签的激活
     * @param $uuid string	是	防伪标签uuid
     * @return mixed|string {"status": "success"}
     * 状态码:success:激活成功 fail:激活失败,无效标签 activated:已激活过
     */
    public static function getAppActivate($uuid)
    {
        try {
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, self::ACTIVE_URL);
            /*curl_setopt($curl, CURLOPT_HTTPHEADER, array (
                'Authorization:APPCODE '.self::APPCODE_IMAGE
            ));*/
            //设置post数据
            $post_data = array(
                "uuid" => $uuid
            );;
            //如果是https协议
            if (stripos(self::ACTIVE_URL, "https://") !== FALSE) {
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
                curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
                curl_setopt($curl, CURLOPT_SSLVERSION, 1);
            }
            //通过POST方式提交
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);

            //超时时间
            curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);
            curl_setopt($curl, CURLOPT_TIMEOUT, 60);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            //返回内容
            $callbcak = curl_exec($curl);
            //http状态码
            $httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE);
            //状态处理
            if (in_array($httpCode, array(400, 403)))
                return "";
            //关闭,释放资源
            curl_close($curl);
            //返回内容JSON_DECODE
            return json_decode($callbcak, true);
        } catch (Exception $e) {
            return false;
        }
    }
}