商品分类
法大大电子合同API定制版—签署包
法大大是行业领先的第三方电子签名平台,专业为企业提供电子合同、电子文件签署及证据保全服务,同时整合提供司法鉴定和律师服务等增值服务。目前已累计服务用户2.1亿+,完成合同30亿+份。
价格
¥5000
折扣价格
¥4000

优质服务商家

7*8小时在线客服

专业测试保证品质

API文档

手动签署接口

调用地址:http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api

请求方式:POST

返回类型:JSON

API调用: API调用说明(secret_id & secret_key)

请求参数(Headers)

名称
类型
是否必须
描述
暂无数据

请求参数(Query)

名称
类型
是否必须
描述
暂无数据

请求参数(Body)

名称
类型
是否必须
描述
app_id
string
如:900001
contract_id
string
根据合同编号指定在哪份文档上进行签署。 合同编号在文档传输或合同生成时设定。
customer_id
string
CA注册时获取。
doc_title
string
如“xx投资合同” 。 需URL encoding处理,编码utf-8。
keyword_strategy
string
关键字签章策略: 0:所有关键字签章 (默认); 1:第一个关键字签章 ; 2:最后一个关键字签章;
msg_digest
string
notify_url
string
如果指定,当签章完成后,法大大将向此URL发送签署结果。 参见签署结果异步通知规范(notify_url)
return_url
string
当签章完成后,在签章页面停留数秒后浏览器会自动跳转到此URL,内容由接入平台自行展示; 参见页面跳转规范(return_url)
sign_keyword
string
关键字为文档中的文字内容(要能使用ctrl+f搜索到)。法大大按此关键字进行签章位置的定位,将电子章盖在这个关键字上面。凡出现关键字的地方均会盖上指定用户的电子章,建议关键字在合同中保持唯一。
timestamp
string
transaction_id
string
每次请求视为一个交易。 只允许长度<=32的英文或数字字符。 交易号为接入平台生成,必须保证唯一并自行记录。
v
string
2.0

请求示例

# -*- coding: utf-8 -*-
from __future__ import print_function

import ssl, hmac, base64, hashlib
from datetime import datetime as pydatetime

try:
    from urllib import urlencode
    from urllib2 import Request, urlopen
except ImportError:
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen

# 云市场分配的密钥Id
secretId = "xxxx"
# 云市场分配的密钥Key
secretKey = "xxxx"
source = "market"

# 签名
datetime = pydatetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT')
signStr = "x-date: %s\nx-source: %s" % (datetime, source)
sign = base64.b64encode(hmac.new(secretKey.encode('utf-8'), signStr.encode('utf-8'), hashlib.sha1).digest())
auth = 'hmac id="%s", algorithm="hmac-sha1", headers="x-date x-source", signature="%s"' % (secretId, sign.decode('utf-8'))

# 请求方法
method = 'POST'
# 请求头
headers = {
    'X-Source': source,
    'X-Date': datetime,
    'Authorization': auth,
}
# 查询参数
queryParams = {
}
# body参数(POST方法下存在)
bodyParams = {
    'app_id': '',
    'contract_id': '',
    'customer_id': '',
    'doc_title': '',
    'keyword_strategy': '',
    'msg_digest': '',
    'notify_url': '',
    'return_url': '',
    'sign_keyword': '',
    'timestamp': '',
    'transaction_id': '',
    'v': ''}
# url参数拼接
url = 'http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api'
if len(queryParams.keys()) > 0:
    url = url + '?' + urlencode(queryParams)

request = Request(url, headers=headers)
request.get_method = lambda: method
if method in ('POST', 'PUT', 'PATCH'):
    request.data = urlencode(bodyParams).encode('utf-8')
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
response = urlopen(request, context=ctx)
content = response.read()
if content:
    print(content.decode('utf-8'))
curl -v -X POST http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api -H 'Host:service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com' -H 'Source:source' -H 'Date:Mon, 19 Mar 2018 12:08:40 GMT' -H 'Authorization:hmac id = "AKIDi6qE41WgJ9w8h4h9zq68Vq24d1beIuN0qIwU", algorithm = "hmac-sha1", headers = "date source", signature = yMCxXNytW5nvVGNZ8aBtRxmiLJ4=' -H 'X-Requested-With:XMLHttpRequest' --data '{"app_id":"","contract_id":"","customer_id":"","doc_title":"","keyword_strategy":"","msg_digest":"","notify_url":"","return_url":"","sign_keyword":"","timestamp":"","transaction_id":"","v":"",}'
//请用云市场分配给您的密钥计算签名并放入请求头,Date为当前的GMT时间
<?php
// 云市场分配的密钥Id
$secretId = 'xxxx';
// 云市场分配的密钥Key
$secretKey = 'xxxx';
$source = 'market';

// 签名
$datetime = gmdate('D, d M Y H:i:s T');
$signStr = sprintf("x-date: %s\nx-source: %s", $datetime, $source);
$sign = base64_encode(hash_hmac('sha1', $signStr, $secretKey, true));
$auth = sprintf('hmac id="%s", algorithm="hmac-sha1", headers="x-date x-source", signature="%s"', $secretId, $sign);

// 请求方法
$method = 'POST';
// 请求头
$headers = array(
    'X-Source' => $source,
    'X-Date' => $datetime,
    'Authorization' => $auth,
);
// 查询参数
$queryParams = array (
);
// body参数(POST方法下)
$bodyParams = array (
    'app_id' => '',
    'contract_id' => '',
    'customer_id' => '',
    'doc_title' => '',
    'keyword_strategy' => '',
    'msg_digest' => '',
    'notify_url' => '',
    'return_url' => '',
    'sign_keyword' => '',
    'timestamp' => '',
    'transaction_id' => '',
    'v' => '',
);
// url参数拼接
$url = 'http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api';
if (count($queryParams) > 0) {
    $url .= '?' . http_build_query($queryParams);
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, array_map(function ($v, $k) {
    return $k . ': ' . $v;
}, array_values($headers), array_keys($headers)));
if (in_array($method, array('POST', 'PUT', 'PATCH'), true)) {
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($bodyParams));
}

$data = curl_exec($ch);
if (curl_errno($ch)) {
    echo "Error: " . curl_error($ch);
} else {
    print_r($data);
}
curl_close($ch);
/**
 * npm install crypto-js request
 */
var CryptoJS = require("crypto-js");
var request = require('request');
var querystring = require('querystring');

// 云市场分配的密钥Id
var secretId = "xxx";
// 云市场分配的密钥Key
var secretKey = "xxx";
var source = "market";

// 签名
var datetime = (new Date()).toGMTString();
var signStr = "x-date: " + datetime + "\n" + "x-source: " + source;
var sign = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA1(signStr, secretKey))
var auth = 'hmac id="' + secretId + '", algorithm="hmac-sha1", headers="x-date x-source", signature="' + sign + '"';

// 请求方法
var method = 'POST';
// 请求头
var headers = {
    "X-Source": source,
    "X-Date": datetime,
    "Authorization": auth,
}
// 查询参数
var queryParams = {
}
// body参数(POST方法下)
var bodyParams = {
    'app_id': '',
    'contract_id': '',
    'customer_id': '',
    'doc_title': '',
    'keyword_strategy': '',
    'msg_digest': '',
    'notify_url': '',
    'return_url': '',
    'sign_keyword': '',
    'timestamp': '',
    'transaction_id': '',
    'v': ''}
// url参数拼接
var url = 'http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api';
if (Object.keys(queryParams).length > 0) {
    url += '?' + querystring.stringify(queryParams);
}

var options = {
    url: url,
    timeout: 5000,
    method: method,
    headers: headers
}
if (['POST', 'PUT', 'PATCH'].indexOf(method) != -1) {
    options['body'] = querystring.stringify(bodyParams);
    options['headers']['Content-Type'] = "application/x-www-form-urlencoded";
}

request(options, function (error, response, body) {
    if (error !== null) {
        console.log('error:', error);
        return;
    }
    console.log(body);
});
package main

import (
    "crypto/hmac"
    "crypto/sha1"
    "encoding/base64"
    "fmt"
    "io"
    "io/ioutil"
    "net/http"
    gourl "net/url"
    "strings"
    "time"
)

func calcAuthorization(source string, secretId string, secretKey string) (auth string, datetime string, err error) {
    timeLocation, _ := time.LoadLocation("Etc/GMT")
    datetime = time.Now().In(timeLocation).Format("Mon, 02 Jan 2006 15:04:05 GMT")
    signStr := fmt.Sprintf("x-date: %s\nx-source: %s", datetime, source)

    // hmac-sha1
    mac := hmac.New(sha1.New, []byte(secretKey))
    mac.Write([]byte(signStr))
    sign := base64.StdEncoding.EncodeToString(mac.Sum(nil))

    auth = fmt.Sprintf("hmac id=\"%s\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\"%s\"",
        secretId, sign)

    return auth, datetime, nil
}

func urlencode(params map[string]string) string {
    var p = gourl.Values{}
    for k, v := range params {
        p.Add(k, v)
    }
    return p.Encode()
}

func main() {
    // 云市场分配的密钥Id
    secretId := "xxxx"
    // 云市场分配的密钥Key
    secretKey := "xxxx"
    source := "market"

    // 签名
    auth, datetime, _ := calcAuthorization(source, secretId, secretKey)

    // 请求方法
    method := "POST"
    // 请求头
    headers := map[string]string{"X-Source": source, "X-Date": datetime, "Authorization": auth}

    // 查询参数
    queryParams := make(map[string]string)

    // body参数
    bodyParams := make(map[string]string)
    bodyParams["app_id"] = ""
    bodyParams["contract_id"] = ""
    bodyParams["customer_id"] = ""
    bodyParams["doc_title"] = ""
    bodyParams["keyword_strategy"] = ""
    bodyParams["msg_digest"] = ""
    bodyParams["notify_url"] = ""
    bodyParams["return_url"] = ""
    bodyParams["sign_keyword"] = ""
    bodyParams["timestamp"] = ""
    bodyParams["transaction_id"] = ""
    bodyParams["v"] = ""
    // url参数拼接
    url := "http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api"
    if len(queryParams) > 0 {
        url = fmt.Sprintf("%s?%s", url, urlencode(queryParams))
    }

    bodyMethods := map[string]bool{"POST": true, "PUT": true, "PATCH": true}
    var body io.Reader = nil
    if bodyMethods[method] {
        body = strings.NewReader(urlencode(bodyParams))
        headers["Content-Type"] = "application/x-www-form-urlencoded"
    }

    client := &http.Client{
        Timeout: 5 * time.Second,
    }
    request, err := http.NewRequest(method, url, body)
    if err != nil {
        panic(err)
    }
    for k, v := range headers {
        request.Header.Set(k, v)
    }
    response, err := client.Do(request)
    if err != nil {
        panic(err)
    }
    defer response.Body.Close()

    bodyBytes, err := ioutil.ReadAll(response.Body)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(bodyBytes))
}
using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System;

public class CsharpTest
{
    public static String HMACSHA1Text(String EncryptText, String EncryptKey)
    {
        HMACSHA1 hmacsha1 = new HMACSHA1();
        hmacsha1.Key = System.Text.Encoding.UTF8.GetBytes(EncryptKey);

        byte[] dataBuffer = System.Text.Encoding.UTF8.GetBytes(EncryptText);
        byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer);
        return Convert.ToBase64String(hashBytes);
    }

    public static void Main(String[] args)
    {
        String url = "http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api";
        String method = "POST";
        String querys = "";
        String postData = "app_id=&contract_id=&customer_id=&doc_title=&keyword_strategy=&msg_digest=&notify_url=&return_url=&sign_keyword=&timestamp=&transaction_id=&v=";

        //云市场分配的密钥Id
        String secretId = "xxxx";
        //云市场分配的密钥Key
        String secretKey = "xxxx";
        String source = "market";

        String dt = DateTime.UtcNow.GetDateTimeFormats('r')[0];
        url = url + "?" + querys;

        String signStr = "x-date: " + dt + "\n" + "x-source: " + source;
        String sign = HMACSHA1Text(signStr, secretKey);

        String auth = "hmac id=\"" + secretId + "\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\"";
        auth = auth + sign + "\"";

        HttpWebRequest httpRequest = null;
        HttpWebResponse httpResponse = null;

        if (url.Contains("https://")) {
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
        } else {
            httpRequest = (HttpWebRequest)WebRequest.Create(url);
        }

        httpRequest.Method = method;
        httpRequest.ContentLength = postData.Length;
        httpRequest.ContentType = "application/x-www-form-urlencoded";
        httpRequest.Headers.Add("Authorization", auth);
        httpRequest.Headers.Add("X-Source", source);
        httpRequest.Headers.Add("X-Date", dt);
        httpRequest.GetRequestStream().Write(System.Text.Encoding.ASCII.GetBytes(postData), 0, postData.Length);

        try {
            httpResponse = (HttpWebResponse)httpRequest.GetResponse();
        } catch (WebException ex) {
            httpResponse = (HttpWebResponse)ex.Response;
        }

        Console.WriteLine(httpResponse.StatusCode);
        Console.WriteLine(httpResponse.Headers);
        Stream st = httpResponse.GetResponseStream();
        StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
        Console.WriteLine(reader.ReadToEnd());
        Console.WriteLine("\n");

    }

    public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
        return true;
    }
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Encoder;


class Demo {
    public static String calcAuthorization(String source, String secretId, String secretKey, String datetime)
            throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
        String signStr = "x-date: " + datetime + "\n" + "x-source: " + source;
        Mac mac = Mac.getInstance("HmacSHA1");
        Key sKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), mac.getAlgorithm());
        mac.init(sKey);
        byte[] hash = mac.doFinal(signStr.getBytes("UTF-8"));
        String sig = new BASE64Encoder().encode(hash);

        String auth = "hmac id=\"" + secretId + "\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\"" + sig + "\"";
        return auth;
    }

    public static String urlencode(Map<?, ?> map) throws UnsupportedEncodingException {
        StringBuilder sb = new StringBuilder();
        for (Map.Entry<?, ?> entry : map.entrySet()) {
            if (sb.length() > 0) {
                sb.append("&");
            }
            sb.append(String.format("%s=%s",
                    URLEncoder.encode(entry.getKey().toString(), "UTF-8"),
                    URLEncoder.encode(entry.getValue().toString(), "UTF-8")
            ));
        }
        return sb.toString();
    }

    public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
        //云市场分配的密钥Id
        String secretId = "xxxx";
        //云市场分配的密钥Key
        String secretKey = "xxxx";
        String source = "market";

        Calendar cd = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.US);
        sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
        String datetime = sdf.format(cd.getTime());
        // 签名
        String auth = calcAuthorization(source, secretId, secretKey, datetime);
        // 请求方法
        String method = "POST";
        // 请求头
        Map<String, String> headers = new HashMap<String, String>();
        headers.put("X-Source", source);
        headers.put("X-Date", datetime);
        headers.put("Authorization", auth);

        // 查询参数
        Map<String, String> queryParams = new HashMap<String, String>();

        // body参数
        Map<String, String> bodyParams = new HashMap<String, String>();
        bodyParams.put("app_id", "");
        bodyParams.put("contract_id", "");
        bodyParams.put("customer_id", "");
        bodyParams.put("doc_title", "");
        bodyParams.put("keyword_strategy", "");
        bodyParams.put("msg_digest", "");
        bodyParams.put("notify_url", "");
        bodyParams.put("return_url", "");
        bodyParams.put("sign_keyword", "");
        bodyParams.put("timestamp", "");
        bodyParams.put("transaction_id", "");
        bodyParams.put("v", "");
        // url参数拼接
        String url = "http://service-ghj7e1d0-1255747603.gz.apigw.tencentcs.com/release/api2/extsign.api";
        if (!queryParams.isEmpty()) {
            url += "?" + urlencode(queryParams);
        }

        BufferedReader in = null;
        try {
            URL realUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            conn.setRequestMethod(method);

            // request headers
            for (Map.Entry<String, String> entry : headers.entrySet()) {
                conn.setRequestProperty(entry.getKey(), entry.getValue());
            }

            // request body
            Map<String, Boolean> methods = new HashMap<>();
            methods.put("POST", true);
            methods.put("PUT", true);
            methods.put("PATCH", true);
            Boolean hasBody = methods.get(method);
            if (hasBody != null) {
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

                conn.setDoOutput(true);
                DataOutputStream out = new DataOutputStream(conn.getOutputStream());
                out.writeBytes(urlencode(bodyParams));
                out.flush();
                out.close();
            }

            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            String result = "";
            while ((line = in.readLine()) != null) {
                result += line;
            }

            System.out.println(result);
        } catch (Exception e) {
            System.out.println(e);
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
}

返回码定义

返回码
返回信息
描述
-1
抱歉,暂时无法处理您的请求,请稍后再试。
未知异常信息
0
error
失败(有时候会带上具体原因)
1
success
成功
2
repeat request
重复请求
1001
公共参数非法
公共参数指app_id,timestamp,v,msg_digest为空或者不符合规则
1002
app_id不存在或未启动
1003
msg_digest无效
1004
请求参数非法
必选参数为空(有时候会带上具体原因)
1005
未绑定IP白名单
1006
请求频繁,请稍后再试
1201
签署记录为空
1202
签署记录为待签署
1203
签署记录未成功
1204
签署记录为失败
1205
签署记录为撤销
1301
实名认证信息已锁定
1302
尚未实名认证
1303
实名认证信息正在审核中
1304
实名认证信息未通过
1305
实名认证信息通过
1401
合同记录为空
1402
合同已归档
1403
合同已过期
1404
合同已撤销
1405
合同已拒签
1406
合同状态不允许操作
1409
已签署
1501
手机信息为空
1502
短信认证失败
1504
人脸认证失败
1505
地址已失效
1506
骑缝章客户编号异常
1507
签章图片获取失败
1509
交易号重复
1511
签署成功,请勿重复请求
1601
客户编号无效
1602
原章不存在
1603
下载到本地失败
1604
图片为空
1605
图片过大
1607
图片格式无效
1608
印章编号无效
1609
印章数量为空
1610
企业用户不能手写签章
1611
印章内容过长
1801
合同编号非法
1802
合同编号无效
1803
合同已删除
1804
合同名称不合法
1903
客户编号非法
1904
客户编号解析失败
2501
模板编号非法
2502
无效模板编号
2503
模板已删除
2504
无效模板文件
2505
模板状态不允许修改
2506
获取模板图片异常,请稍后再试
2507
对不起,模板号重复
2508
模板文件上传失败
2509
模板不存在
2510
合同id重复
3201
不能重复申请证书
3202
存证编号非法
3203
证书申请失败
3204
实名认证序列号非法
3205
实名认证未通过
3206
不允许申请实名证书

商品介绍

【购买须知】

1、本产品为【API定制版—签署包】,需购买【API定制版—个人认证包】+【API定制版—企业认证包] 配套使用;

2、  本产品按购买规格内所含合同份数收取费用(单份合同多个签章只按一份计算),时间有效期一年; 

3、购买后请阅读商品文档:【法大大电子合同API购买及使用指南】  

4、我们提供的售后服务包含但不限于:

1)一对一技术支持;

2)一对一客服支持;

3)其他技术和产品需求及问题处理。

5、法大大官方客服热线:0755-23289719(工作日, 9:00-18:00),15116397749(非工作日9:00-18:00);法大大客服邮箱:yunyingzu@fadada.com,欢迎随时咨询留言。

f174c2da61a7f2517f643e2bb5a146b7.png

ee94e191a8d9e7959d43e91837a609c6.png

594595a8e666577a6d567288ab727479.png

f5d9d7443ad91dd6cf0f759657f92a86.png

2d0693182d5bbf93d3ae9f2c89096290.png

80c30f52891a03b8b840369b1f8cfba8.png

d85a1ee2e3a787bd14e4d69ee057933b.png

43c7840b4b58fdf941b74d5070bbf76c.png

47181d212fd0d682de3f286fbfbf571d.png

c86f4b868feec2c8dbd7a997896f7eb8.png

8f7537d636241336bf309aa310dcf5e7.png

24962ad726b37119782735f0b496644b.png

68fc065db8e78bd539a35ce42b1665fc.png

de3d4f5b9c0687ac051e3a9a71f895e9.png

使用指南

1购买完成后,点击进入控制台

2在控制台点击”管理“查看详情”

3获得API的SecretID和SecretKey后,即可按照商品介绍里的方式调用API

累计评价(0)

为保障您的权益,请勿线下交易!90%的欺诈、纠纷、资金盗窃均由线下交易导致。腾讯云市场为您提供以下服务保障:

优质服务商家

严格准入 提供海量上云服务

7*8小时在线客服

全程在线咨询 助您安心购物

专业测试保证品质

安全监测 保障商品质量

退款售后无忧

不满意可退款 保障售后无忧

卖家服务时间

为保障您的权益,请勿线下交易!90%的欺诈、纠纷、资金盗窃均由线下交易导致。