@@ -0,0 +1,16 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+from __future__ import division |
|
| 4 |
+ |
|
| 5 |
+from django_logit import logit |
|
| 6 |
+from django_response import response |
|
| 7 |
+ |
|
| 8 |
+from utils.tencentcloud.faceid import get_eid_token |
|
| 9 |
+ |
|
| 10 |
+ |
|
| 11 |
+@logit |
|
| 12 |
+def get_faceid_eid_token(request): |
|
| 13 |
+ eidtoken = get_eid_token() |
|
| 14 |
+ return response(data={
|
|
| 15 |
+ 'eidtoken': eidtoken, |
|
| 16 |
+ }) |
@@ -5,7 +5,8 @@ from django_file_upload import views as file_views |
||
| 5 | 5 |
|
| 6 | 6 |
from api import (admin_views, clerk_views, complement_views, distributor_views, encrypt_views, express_views, log_views, |
| 7 | 7 |
maintenance_point_views, maintenance_views, mch_views, member_views, model_views, operator_views, |
| 8 |
- refresh_views, sr_views, staff_views, tenancy_admin_views, tenancy_views, wx_views, wxa_views) |
|
| 8 |
+ refresh_views, sr_views, staff_views, tenancy_admin_views, tenancy_views, tencentcloud_views, wx_views, |
|
| 9 |
+ wxa_views) |
|
| 9 | 10 |
from miniapp import qy_views |
| 10 | 11 |
from miniapp import views as mini_views |
| 11 | 12 |
from page import oauth_views, sale_views, screen_views |
@@ -356,3 +357,8 @@ urlpatterns += [ |
||
| 356 | 357 |
|
| 357 | 358 |
# 快递信息回调接口 |
| 358 | 359 |
] |
| 360 |
+ |
|
| 361 |
+# 腾讯云 |
|
| 362 |
+urlpatterns += [ |
|
| 363 |
+ url(r'^tencentcloud/faceid/eidtoken$', tencentcloud_views.get_faceid_eid_token, name='tencentcloud_get_faceid_eid_token'), |
|
| 364 |
+] |
@@ -233,6 +233,16 @@ WECHAT = {
|
||
| 233 | 233 |
MEMBER_CARD_ID_TAMRON = '' |
| 234 | 234 |
MEMBER_CARD_ID_HANYUAN = '' |
| 235 | 235 |
|
| 236 |
+# 腾讯云 |
|
| 237 |
+TENCENTCLOUD = {
|
|
| 238 |
+ 'default': {
|
|
| 239 |
+ 'appid': '', |
|
| 240 |
+ 'secret_id': '', |
|
| 241 |
+ 'secret_key': '', |
|
| 242 |
+ 'merchant_id': '', |
|
| 243 |
+ }, |
|
| 244 |
+} |
|
| 245 |
+ |
|
| 236 | 246 |
# 七牛设置 |
| 237 | 247 |
QINIU = {
|
| 238 | 248 |
'access_key': 'yCE3xWXduLTERkx_vSNVAIHNcg1pje6EwygiRPjP', |
@@ -0,0 +1,51 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+import json |
|
| 4 |
+ |
|
| 5 |
+from django.conf import settings |
|
| 6 |
+from tencentcloud.common import credential |
|
| 7 |
+from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException |
|
| 8 |
+from tencentcloud.common.profile.client_profile import ClientProfile |
|
| 9 |
+from tencentcloud.common.profile.http_profile import HttpProfile |
|
| 10 |
+from tencentcloud.faceid.v20180301 import faceid_client, models |
|
| 11 |
+ |
|
| 12 |
+ |
|
| 13 |
+tencentcloud_cfg = settings.TENCENTCLOUD.get('default', {})
|
|
| 14 |
+secret_id = tencentcloud_cfg.get('secret_id')
|
|
| 15 |
+secret_key = tencentcloud_cfg.get('secret_key')
|
|
| 16 |
+merchant_id = tencentcloud_cfg.get('merchant_id')
|
|
| 17 |
+ |
|
| 18 |
+ |
|
| 19 |
+def get_eid_token(): |
|
| 20 |
+ try: |
|
| 21 |
+ # 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密 |
|
| 22 |
+ # 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取 |
|
| 23 |
+ cred = credential.Credential(secret_id, secret_key) |
|
| 24 |
+ # 实例化一个http选项,可选的,没有特殊需求可以跳过 |
|
| 25 |
+ httpProfile = HttpProfile() |
|
| 26 |
+ httpProfile.endpoint = "faceid.tencentcloudapi.com" |
|
| 27 |
+ |
|
| 28 |
+ # 实例化一个client选项,可选的,没有特殊需求可以跳过 |
|
| 29 |
+ clientProfile = ClientProfile() |
|
| 30 |
+ clientProfile.httpProfile = httpProfile |
|
| 31 |
+ # 实例化要请求产品的client对象,clientProfile是可选的 |
|
| 32 |
+ client = faceid_client.FaceidClient(cred, "", clientProfile) |
|
| 33 |
+ |
|
| 34 |
+ # 实例化一个请求对象,每个接口都会对应一个request对象 |
|
| 35 |
+ req = models.GetEidTokenRequest() |
|
| 36 |
+ params = {
|
|
| 37 |
+ "MerchantId": merchant_id |
|
| 38 |
+ } |
|
| 39 |
+ req.from_json_string(json.dumps(params)) |
|
| 40 |
+ |
|
| 41 |
+ # 返回的resp是一个GetEidTokenResponse的实例,与请求对象对应 |
|
| 42 |
+ resp = client.GetEidToken(req) |
|
| 43 |
+ # 输出json格式的字符串回包 |
|
| 44 |
+ # print(resp.to_json_string()) |
|
| 45 |
+ |
|
| 46 |
+ return resp.EidToken |
|
| 47 |
+ |
|
| 48 |
+ except TencentCloudSDKException as err: |
|
| 49 |
+ # print(err) |
|
| 50 |
+ |
|
| 51 |
+ return '' |