アリペイウィジェット認証ログイン(python SDK)

1996 ワード

python SDKは認証ログインを行い、ネット上でpythonの例が見つからないので、記録を書きます.
import logging
import traceback

from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.constant.ParamConstants import *

from alipay.aop.api.request.AlipaySystemOauthTokenRequest import AlipaySystemOauthTokenRequest
from alipay.aop.api.response.AlipaySystemOauthTokenResponse import AlipaySystemOauthTokenResponse

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s %(levelname)s %(message)s',
    filemode='a',)
logger = logging.getLogger('')

if __name__ == '__main__':
    #       
    alipay_client_config = AlipayClientConfig()
    alipay_client_config.server_url = 'https://openapi.alipay.com/gateway.do'
    alipay_client_config.app_id = ''  # appid
    alipay_client_config.app_private_key = ''  #    
    alipay_client_config.alipay_public_key = ''  #     
    client = DefaultAlipayClient(alipay_client_config, logger)

    request = AlipaySystemOauthTokenRequest()

    request.code = ""  #auth_code      
    request.grant_type = "authorization_code"

    #   API  
    try:
        response_content = client.execute(request)
    except Exception as e:
        print(traceback.format_exc())

    if not response_content:
        print("failed execute")
    else:
        #       
        response = AlipaySystemOauthTokenResponse()
        response.parse_response_content(response_content)
        if response.is_success():
            #       ,    response        
            auth_token = response.access_token
            print("get auth_token:" + response.access_token)
        #          
        else:
            #       ,               ,               
            print(response.code + "," + response.msg + "," + response.sub_code + "," + response.sub_msg)