Django之实现支付宝三方登陆demo

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

支付宝三方登录

  • 文档地址:https://docs.open.alipay.com/20160728150111277227
  • 应用管理:https://openhome.alipay.com/platform/appDaily.htm
  • 安装sdk
pip3 install alipay-sdk-python
  • 所需导入模块
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.request.AlipayOpenAuthTokenAppRequest import AlipayOpenAuthTokenAppRequest,AlipayOpenAuthTokenAppModel
  • 过程中可能会由于ssl证书校验而出错
import ssl
 
ssl._create_default_https_context = ssl._create_unverified_context
  • 使用sdk生成支付宝客户端
def get_alipay_client():
    alipay_client_config = AlipayClientConfig()
    alipay_client_config.app_id = 
    alipay_client_config.app_private_key = ""
    alipay_client_config.alipay_public_key = ""
    # 使用授权码换取令牌
    alipay_client = DefaultAlipayClient(alipay_client_config)
    return alipay_client
  • 生成链接及回调信息获取
class ZFB(APIView):
    def get(self,request):
        # 返回支付宝登录页面
        app_id = 
        redirect_uri = 'http://localhost:8080/result/'
        url = 'https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?app_id=%s&redirect_uri=%s'

        return Response({
            "url":url % (app_id,redirect_uri)
        }) 

    def post(self,request):
        auth_code = request.data.get('app_auth_code')
        print(auth_code)
        zfb_client = get_alipay_client()
        biz_model = AlipayOpenAuthTokenAppModel()
        biz_model.grant_type = "authorization_code"
        biz_model.code = auth_code
        request = AlipayOpenAuthTokenAppRequest(biz_model=biz_model)
        response_content = zfb_client.execute(request)
        # 可以通过此处返回的response_content中的user_id进行用户三方登录的定位
        print(response_content)
        return Response({
            'data':response_content,
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李恩泽的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值