重要说明:这里只是拿php举例,实际上sdk支持6种语言,包括php、python、java、go、.net和nodejs。具体可以看后面3.3

现在已提供命令行方式进行加固,详情请参考:https://cloud.tencent.com/developer/article/1193406

一、安装(以下两种安装方式任选其一)

1.1、使用 Composer安装

1.1.1安装 Composer(如果已经有Composer请忽略)

windows 环境请访问 Composer官网 下载安装包安装。unix 环境在命令行中执行以下命令安装。

  curl -sS https://getcomposer.org/installer | php

1.1.2 在 composer.json 的 require 结构体中加入依赖:注意这里的版本号只是举例,您可以在composer仓库上看到最新的版本号。

  "tencentcloud/tencentcloud-sdk-php": "3.0.2"

1.1.3 运行 composer install 下载安装 PHP SDK

1.1.4 添加以下引用代码,引用方法可参考示例。

  require 'vendor/autoload.php';

1.2、通过源码包安装

1.2.1前往 Github 代码托管地址 下载源码压缩包。

1.2.2解压源码包到您项目合适的位置。

1.2.3添加以下引用代码,引用方法可参考示例。

  require_once '../TCloudAutoLoader.php';

二、使用示例

以下为了说明问题将两个接口分开,实际上可以将两个接口在一份代码中使用,只要use对应的接口即可。两个例子区别只在第3步和第7步

2.1 提交加固请求

  <?php
  // 1、引用
  // 如果通过Composer安装,那么引用方式是:require 'vendor/autoload.php';
  // 如果是源码包安装方式,这里注意解压的位置,保证通过require方式可以引用得到,本例子是源码安装方式使用举例
  require_once "./tencentcloud-sdk-php-master/TCloudAutoLoader.php";
  // 2、导入对应产品模块的client
  use TencentCloud\Ms\V20180408\MsClient;
  // 3、导入要请求接口对应的Request类
  use TencentCloud\Ms\V20180408\Models\CreateShieldInstanceRequest;
  use TencentCloud\Common\Exception\TencentCloudSDKException;
  use TencentCloud\Common\Credential;
  ​
  try {
      // 4、实例化一个证书对象,入参需要传入腾讯云账户secretId,secretKey,获取方式参考3.1
      $cred = new Credential("secretId", "secretKey");
      // 5、 实例化要请求产品(ms)的client对象
      $client = new MsClient($cred, "ap-guangzhou");
  ​
      // 6、实例化一个请求对象
      $req = new CreateShieldInstanceRequest();
     // 7、业务参数
      $params = array(
          'ServiceInfo' => array(
              'ServiceEdition' => 'basic', // 服务版本,填写basic
              'CallbackUrl' => 'http://e.com/a', // 任务处理完成后的反向通知回调地址,通知为POST请求,post信息{ItemId:"xxxduuyt-ugusg"}
              'SubmitSource' => 'API' // 提交来源,固定写API
          ),
          'AppInfo' => array(
              'AppUrl' => 'http://example.com/EasyConnect.apk', // 必选,app的下载url,必须保证不用权限校验就可以下载
              'AppMd5' => '5e723e63c92f4296d79c2a4c2a2f032e', // 必选,app的md5
          )
      );
      $req->fromJsonString(json_encode($params));
      // 8、通过client对象调用想要访问的接口,需要传入请求对象
      $resp = $client->CreateShieldInstance($req);
      // 9、打印结果
      print_r($resp->toJsonString());die;
  }
  catch(TencentCloudSDKException $e) {
      echo $e;
  }
  ?>

2.2 查询加固结果

  <?php
  // 1、引用
  // 如果通过Composer安装,那么引用方式是:require 'vendor/autoload.php';
  // 如果是源码包安装方式,这里注意解压的位置,保证通过require方式可以引用得到,本例子是源码安装方式使用举例
  require_once "./tencentcloud-sdk-php-master/TCloudAutoLoader.php";
  // 2、导入对应产品模块的client
  use TencentCloud\Ms\V20180408\MsClient;
  // 3、导入要请求接口对应的Request类
  use TencentCloud\Ms\V20180408\Models\DescribeShieldResultRequest;
  use TencentCloud\Common\Exception\TencentCloudSDKException;
  use TencentCloud\Common\Credential;
  ​
  try {
      // 4、实例化一个证书对象,入参需要传入腾讯云账户secretId,secretKey,获取方式参考3.1
      $cred = new Credential("secretId", "secretKey");
      // 5、实例化要请求产品(ms)的client对象
      $client = new MsClient($cred, "ap-guangzhou");
      // 6、实例化一个请求对象,这里是查询加固请求对象
      $req = new DescribeShieldResultRequest();
     // 7、业务参数
      $params = array(
          'ItemId' => '5b3def1d81a35cda9d7629b8f95ccedb' //这里ItemId从上面一个接口中获取
      );
      $req->fromJsonString(json_encode($params));
      // 8、通过client对象调用想要访问的接口,需要传入请求对象
      $resp = $client->DescribeShieldResult($req);
      // 9、打印结果
      print_r($resp->toJsonString());die;
  }
  catch(TencentCloudSDKException $e) {
      echo $e;
  }
  ?>

三、加固返回码说明

调用加固api传递参数发送加固请求,完成后需要查询加固结果。

查询接口文档:https://cloud.tencent.com/document/api/283/17750

输出参数中有个字段ShieldInfo,该字段是app加固后的详细信息。ShieldCode是ShieldInfo下面的一个字段,描述的是加固结果返回码。以下是加固结果返回码说明:

返回码 说明
0 请求成功
40101 apk安装包检测到病毒
40102 apk安装包已经加固
40104 apk安装包上传失败,可能是网络原因导致超时
40105 apk安装包大小超过1G
40106 文件不是有效的apk
40109 提交加固请求的链接失效或者无法通过改链接下载apk
40113 apk信息不完整,上传的APK非法,请检查APK是否包含签名、标签、版本号等信息
40115 apk安装包缺少签名
40116 apk安装包缺少标签
40133 获取加固文件结果失败
40134 上传图标出错
40140 任务提交失败
40141 软件不安全
40142 查毒失败
40143 查毒超时
40144 用户上传到web服务器失败

如果遇到其他返回码,可以加QQ群218062986反馈。

四、注意事项

3.1 密钥获取地址 https://console.qcloud.com/capi

3.2 移动安全所有接口列表https://cloud.tencent.com/document/product/283/17742

3.3 其它语言SDK和SDK更新地址:https://cloud.tencent.com/document/sdk

文章来源于腾讯云开发者社区,点击查看原文