全部产品
Search
文档中心

:SDK方式调用

更新时间:Mar 20, 2023

本文介绍如何如果通过SDK对接风险识别产品,这是一种简单便捷的API对接方式。

SDK调用方式介绍

通过使用阿里云风险识别SDK,调用方无需关注签名验证以及Body格式构建等繁琐的事情,推荐您使用风险识别SDK。目前支持JAVA、Python、PHP、C#、Golang、Node.js、Ruby共7种SDK。

JAVA SDK

JAVA Maven依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-saf</artifactId>
    <version>3.0.1</version>
</dependency>

JAVA Maven推荐依赖仲裁:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <optional>true</optional>
    <version>4.5.25</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.68.noneautotype</version>
</dependency>
<dependency>        
    <groupId>org.apache.httpcomponents</groupId>        
    <artifactId>httpclient</artifactId>        
    <version>4.5.3</version>    
</dependency>    
<dependency>       
    <groupId>io.opentracing</groupId>       
    <artifactId>opentracing-util</artifactId>        
    <version>0.31.0</version>    
</dependency>

单击地址1地址2访问JAVA Maven仓库。

JAVA SDK源码:

 // 创建DefaultAcsClient实例并初始化,仅需初始化一遍
DefaultProfile profile = DefaultProfile.getProfile(
    "<your-region-id>",          // 地域ID 推荐用 cn-shanghai 
    "<your-access-key-id>",      // RAM账号的AccessKey ID
    "<your-access-key-secret>"); // RAM账号Access Key Secret
// http连接池相关配置
HttpClientConfig clientConfig = HttpClientConfig.getDefault();
clientConfig.setMaxRequestsPerHost(6);
clientConfig.setMaxIdleConnections(20);
// http超时时间配置
clientConfig.setReadTimeoutMillis(10000);
clientConfig.setConnectionTimeoutMillis(3000);
profile.setHttpClientConfig(clientConfig);
IAcsClient client = new DefaultAcsClient(profile);


//发起请求
ExecuteRequestRequest executeRequestRequest = new ExecuteRequestRequest();
//如果需要指定特殊版本号,可以在这里调整
//executeRequestRequest.setVersion(version);
// 指定请求方法
executeRequestRequest.setSysMethod(MethodType.POST);
//指定协议,目前只支持HTTPS
executeRequestRequest.setSysProtocol(ProtocolType.HTTPS);
//服务的产品码:address_validation/email_risk/coupon_abuse/account_abuse。
String service = "目标产品的service";
executeRequestRequest.setService(service);

// 业务详细参数,具体见文档里的业务参数部分,不需要的参数就不需要设置
Map<String, Object> serviceParams = new HashMap<String, Object>();

// IMEI
serviceParams.put("imei", "A000******A025");
//手机号13********3
serviceParams.put("mobile", "13********3");
executeRequestRequest.setServiceParameters(JSONObject.toJSONString(serviceParams));
executeRequestRequest.setAcceptFormat(FormatType.JSON);
try {
    ExecuteRequestResponse httpResponse = client.getAcsResponse(executeRequestRequest);
    System.out.println("httpResponse:" + JSONObject.toJSONString(httpResponse));
} catch (Exception e) {
    e.printStackTrace();
}

Python SDK

单击此处下载Python SDK源码。

  1. 安装SDK核心库。

    • 如果您使用Python 2.x,执行以下命令,安装阿里云SDK核心库:

      pip install aliyun-python-sdk-core
    • 如果您使用Python 3.x,执行以下命令,安装阿里云SDK核心库:

      pip install aliyun-python-sdk-core-v3
  2. 安装云产品SAF SDK。

    pip install aliyun-python-sdk-saf

Python用例:

from aliyunsdkcore import client
from aliyunsdksaf.request.v20190521 import ExecuteRequestRequest
clt = client.AcsClient('<your-access-key-id>','<your-access-key-secret>','cn-shanghai')
# 设置参数
request = ExecuteRequestRequest.ExecuteRequestRequest()
request.set_accept_format('json')
# 产品Service请参考[公共参数]文档中的Service字段描述
request.add_query_param('Service', '购买的产品Service')
request.add_query_param('ServiceParameters', '入参json字符串')
# 发起请求
response = clt.do_action_with_exception(request)
print(response)
                                

PHP SDK

单击此处下载PHP SDK源码。

PHP用例:

<?php
include_once 'aliyun-openapi-php-sdk/aliyun-php-sdk-core/Config.php';
use saf\Request\V20190521 as saf;
// 初始化
$iClientProfile = DefaultProfile::getProfile("cn-shanghai", "<your-access-key-id>", "<your-access-key-secret>");
$client = new DefaultAcsClient($iClientProfile);
//设置参数
$request = new saf\ExecuteRequestRequest();
// 产品Service请参考[公共参数]文档中的Service字段描述
$request->setService('购买的产品Service');
$request->setServiceParameters('入参json字符串');
// 发起请求
$response = $client->getAcsResponse($request);
print_r("<br>");
print_r("test");
print_r("\r\n");
print_r($response);
print_r($client);
?>

C# SDK

单击此处下载C# SDK源码。

Golang SDK

单击此处下载Golang SDK源码。

Golang用例:

package main
import (
    "fmt"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/saf"
)
func main() {
    client, err := saf.NewClientWithAccessKey("cn-shanghai", "<your-access-key-id>", "<your-access-key-secret>")
    request := saf.CreateExecuteRequestRequest()
    endpoints.AddEndpointMapping("cn-shanghai", "saf", "saf.cn-shanghai.aliyuncs.com")
    // 产品Service请参考[公共参数]文档中的Service字段描述
    request.Service = "购买的产品Service"
    request.ServiceParameters = "入参json字符串"
    request.Scheme = "https"
    response, err := client.ExecuteRequest(request)
    if err != nil {
        fmt.Print(err.Error())
    }
    fmt.Printf("response code is %#v\n", response.Code)
    fmt.Printf("response data is %#v\n", response.Data)
    fmt.Printf("response message is %#v\n", response.Message)
    fmt.Printf("response requestId is %#v\n", response.RequestId)
}

Node.js SDK

单击此处下载Node.js SDK源码。

执行以下命令安装@alicloud/pop-core模块。命令中的--save会将模块写入应用的package.json文件中,作为依赖模块。

$ npm install @alicloud/pop-core --save

Node.js用例:

const Core = require('@alicloud/pop-core');
var client = new Core({
  accessKeyId: '<your-access-key-id>',
  accessKeySecret: '<your-access-key-secret>',
  endpoint: 'https://saf.cn-shanghai.aliyuncs.com',
  apiVersion: '2019-01-28'
});
var params = {
  "RegionId": "cn-shanghai",
  // 产品Service请参考[公共参数]文档中的Service字段描述
  "Service": "购买的产品Service",
  "ServiceParameters": "入参json字符串"
}
var requestOption = {
  method: 'POST'
};
client.request('ExecuteRequest', params, requestOption).then((result) => {
  console.log(JSON.stringify(result));
}, (ex) => {
  console.log(ex);
})

Ruby SDK

单击此处下载Ruby SDK源码。

执行以下命令安装 Alibaba Cloud Core SDK for Ruby:

$ gem install aliyunsdkcore

Ruby用例:

require 'aliyunsdkcore'
client = RPCClient.new(
  access_key_id:     '<your-access-key-id>',
  access_key_secret: '<your-access-key-secret>',
  endpoint: 'https://saf.cn-shanghai.aliyuncs.com',
  api_version: '2019-01-28'
)
response = client.request(
  action: 'ExecuteRequest',
  params: {
    "RegionId": "cn-shanghai",
    # 产品Service请参考[公共参数]文档中的Service字段描述
    "Service": "购买的产品Service",
    "ServiceParameters": "入参json字符串"
  },
  opts: {
    method: 'POST'
  }
)
print response