> secret_id = tencentcloud_cfg.get('secret_id')
secret_key = tencentcloud_cfg.get('secret_key')
-callback_secret_id = tencentcloud_cfg.get('callback_secret_id')
callback_secret_key = tencentcloud_cfg.get('callback_secret_key')
+callback_secret_token = tencentcloud_cfg.get('callback_secret_token')
endpoint = tencentcloud_cfg.get('endpoint')
file_endpoint = tencentcloud_cfg.get('file_endpoint')
@@ -304,3 +306,32 @@ def create_scheme_url(flow_id=None, name=None, mobile=None, card_type='ID_CARD',
resp = {}
return resp
+
+
+def decode_aes256(data, encryption_key):
+ iv = encryption_key[0:16]
+ aes = AES.new(encryption_key, AES.MODE_CBC, iv)
+ d = aes.decrypt(data)
+ unpad = lambda s: s[0:-ord(d[-1:])]
+ return unpad(d)
+
+
+def test_decode():
+ # https://qian.tencent.com/developers/company/callback_types_v2
+ data = "62KE4r5Wz0yHzEpMOwVRbM1KV0pPjj+cmJkT+i65MMscgfHAdNP+9K0nV/fFw1xriwi08APc/wM0mHprE43Hc91VPhRDnu2Wn0+bjzgjmy/FgZKZATR9oquy0/BCWu4C77AjkpkoU1/E7gGLr8M9u9t7zbS4AkkGK5xL5TtwI0sS+CMygmyV7bRjxebMycI52U3QJiwDRIPxFO+7yqeXYXV9AQrRskpCDBNFGW72bh+Ixw9dtX00kWcwVQ93V+mayrvdQ8oGSsL32m72kbBfahsIvIxSYSdDAEeTyokqKGfaLWD27vm55QG218IFKEsOJFDGdqCF+IBcM/+rOFeOrewvP5ehIO2KjFBecTDn0RQTlIiokXIQ4zJKvu6njePFRFoFCZjd4oiEIVn/OBw+rjXml3qwgVBQjPRtYdvDJFNENlVjlkVVmLWeS8MIdqsFWhm6Sa7O8X57mwc0cLJ22mGbyVEzNTFqeFJ/mkueW0leLcoZdjv/+IxZusqa1cpfwzkZhwi5rY6kJffNkkrxIc6OeRvpU4ECgBe/b+kxX+ObC0z9u7nzoZAOHx4akYviyIU5B1romjdfHQ/wDr5udm4Rl4NBhU/6V06Rvaadw0Ta9oBkZHGNxFWv32MnL7fVA0zVNOFDP8n+kaQiNGFAXLF4F5oIItYc5+Gp/IxfkltEki7ni7LztViE7b/ZiKSM+gzQn6fLsJ/dlUoZmh141Y0V/GPpsbxBOnWCjBZdNkLTKxdKCMScLCTysJxv7l6Swff8nAEurbzx1tvyhJAvUDnIaLyP8pRPRFq8p0xm3ZVpOo9k7A952XxVHSs40g4sr/Dihkn60aVhGtKK9DueCzn8P3cWG4TYc03M1hNlPfF+UAfnvQ1ZYAMKT/XPLqYtgRFpRkK96YfVecIrfUe9MjWl0/g4hYCAAOJurFoeGwkJiyQ8Q7DCI5EaHa3s/vI621yQyytC6D2u86RiDJxMW0PdvkUfayT7iPwC83EsfEzpQXr0yeSCQCSBgNByEuCNnZl8LAhYl05Y9+bgCzSPt6EUvmaXclYL+/EPrEmi+hzIdXUwBfhXgICT8MteJgMSgmJM2FjjGxy6uZtfHKRIzf1wk6OORPkPJtMgjlMtMs6VFC62EEeo5Xy2v1S95WT/WQ0tnGR8KjbNnmjNSRyD8VtS2mjlLXaK0xRb71YGt57O19YxQQ3R/Hq9zGqOjG+Agdl+pcvh47RlF8o3CnlU7Q=="
+ encryption_key = 'TencentEssEncryptTestKey12345678'
+ return callback_decode(data, encryption_key)
+
+
+def callback_decode(data, encryption_key=None):
+ # 此处传入密文,如果接收到的数据是{"encrypt":"base64后的密文"}
+ # data = 'base64后的密文'
+ data = base64.b64decode(data)
+ encryption_key = encryption_key or callback_secret_key
+ # encryption_key = bytes(encryption_key or callback_secret_key, encoding="utf8")
+ # 此处传入CallbackUrlKey
+ e = decode_aes256(data, encryption_key)
+ # print(type(e))
+ # print(e)
+ # print(str(e, encoding="utf8"))
+ return json.loads(e)