支付宝小程序+Django获取会员基础信息(获取用户唯一标识 user_id和access_token)

吐槽

相对于起步早的微信小程序来说,网上有关支付宝小程序的相关案例要少许多(一问度娘,皆是微信小程序),更别说用python来实现支付宝小程序后端的案例了,可以说是大海捞针。所以,打算在此记录下个人开发支付宝小程序遇到的一些问题,如有失误之处,还请体谅。

准备

1.自行注册支付宝小程序
2.注册成功后在开发中心—小程序应用—选择小程序—开发管理–功能列表中添加‘获取会员基础信息’的功能。
在这里插入图片描述
3.下载RSA签名工具(用于生成应用私钥和应用公钥)
具体步骤看说明就行:
在这里插入图片描述
4.下载RSA签名工具成功,运行:RSA签名验签工具.bat
(为了安全起见,作者体验了一次厚涂的艺术。)
在这里插入图片描述
生成应用私钥和应用公钥后,复制应用公钥,记得在‘开发中心—小程序应用—选择小程序-设置–开发设置–设置接口加密方式‘
设置接口加密方式
将复制的应用公钥填入
这里的支付宝公钥和上面的应用私钥就是之后我们需要用到的一个东东

开始代码

记得在Django或者python中安装alipay SDK,方式:pip install alipay-sdk-python

支付宝小程序部分

获取会员基础信息,需要authCode这个东东。

onLoad(options) {
// my.getAuthCode可以在不通过后端的方式获取用户头像和用户名。但无法获取到user_id

	my.getAuthCode({
    scopes: 'auth_user',
    success: (res) => {
			my.getAuthUserInfo({
         		 	scopes: ['auth_user'],
					success: (res) => {
						this.setData({
						//用户名
							name:res.nickName,
						// 头像链接
							src1:res.avatar
						})
								},
				 fail:() =>{
								reject({});
						}
									 });
			// 请求后台,获取user_id
			if(res.authCode){
					my.httpRequest({
						url: '',// 填写目标服务器url
						method:'GET',
						dataType: 'json',
						data:{
							code:res.authCode
						},
						success: res => {
              			console.log('请求成功')
              			console.log(res)
            },
						fail: res => {
              console.log('请求失败')
          }
    });
			}
	},
Python后端(Django)
#导入必要的包
from django.http import JsonResponse,HttpResponse
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.request.AlipaySystemOauthTokenRequest import AlipaySystemOauthTokenRequest
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
import json
def get_user(request):
	#小程序端传来的res.authCode
	code1 = request.GET['code']
	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 = '填入支付宝公钥'
	AlipayClient = DefaultAlipayClient(alipay_client_config)
	request11 = AlipaySystemOauthTokenRequest()
	request11.grant_type = 'authorization_code'
	request11.code = code1
	user_info_dict = AlipayClient.execute(request11)
	result = json.loads(user_info_dict)
	#也可以获取到access_token
	access_token = result['access_token']
	user_id = result['user_id']
	print(user_id)
	#将整个result返回给小程序端,也可以拆开返回
	return JsonResponse(result)
结束
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

狼性书生

谢谢鼓励!

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

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

打赏作者

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

抵扣说明:

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

余额充值