# -*- coding: utf-8 -*-

import json

from django.conf import settings
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.faceid.v20180301 import faceid_client, models


tencentcloud_cfg = settings.TENCENTCLOUD.get('faceid', {})
secret_id = tencentcloud_cfg.get('secret_id')
secret_key = tencentcloud_cfg.get('secret_key')
merchant_id = tencentcloud_cfg.get('merchant_id')


def get_eid_token():
    try:
        # 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
        # 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
        cred = credential.Credential(secret_id, secret_key)
        # 实例化一个http选项,可选的,没有特殊需求可以跳过
        httpProfile = HttpProfile()
        httpProfile.endpoint = "faceid.tencentcloudapi.com"

        # 实例化一个client选项,可选的,没有特殊需求可以跳过
        clientProfile = ClientProfile()
        clientProfile.httpProfile = httpProfile
        # 实例化要请求产品的client对象,clientProfile是可选的
        client = faceid_client.FaceidClient(cred, "", clientProfile)

        # 实例化一个请求对象,每个接口都会对应一个request对象
        req = models.GetEidTokenRequest()
        params = {
            "MerchantId": merchant_id
        }
        req.from_json_string(json.dumps(params))

        # 返回的resp是一个GetEidTokenResponse的实例,与请求对象对应
        resp = client.GetEidToken(req)
        # 输出json格式的字符串回包
        # print(resp.to_json_string())

        return resp.EidToken

    except TencentCloudSDKException as err:
        # print(err)

        return ''