博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
支付宝小程序+Django获取会员基础信息(获取用户唯一标识 user_id和access_token)
阅读量:3923 次
发布时间:2019-05-23

本文共 2228 字,大约阅读时间需要 7 分钟。

吐槽

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

准备

1.自行注册支付宝小程序

2.注册成功后在开发中心—小程序应用—选择小程序—开发管理–功能列表中添加‘获取会员基础信息’的功能。
在这里插入图片描述
3.
具体步骤看说明就行:
在这里插入图片描述
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,HttpResponsefrom alipay.aop.api.DefaultAlipayClient import DefaultAlipayClientfrom alipay.aop.api.request.AlipaySystemOauthTokenRequest import AlipaySystemOauthTokenRequestfrom alipay.aop.api.AlipayClientConfig import AlipayClientConfigimport jsondef 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)
结束

转载地址:http://mrugn.baihongyu.com/

你可能感兴趣的文章
glib 中 IO Channels 理解
查看>>
[linux]警告:检测到时钟错误。您的创建可能是不完整的。
查看>>
动态库的Makefile.am编写
查看>>
蓝牙1.1、蓝牙1.2、蓝牙2.0的关键区别
查看>>
循环队列操作实现
查看>>
linux的信号
查看>>
glib 中 IO Channels 理解
查看>>
C++中extern “C”含义深层探索
查看>>
extern用法详解(转)
查看>>
如何在Linux下用C/C++语言操作数据库sqlite3
查看>>
SQLite的数据类型
查看>>
使用sqlite3与C接口开发数据库程序 - [编程]
查看>>
Sqlite日期和时间函数不求人
查看>>
在SQLite中使用索引优化查询速度
查看>>
标准C处理类似INI配置文件的键值型文档
查看>>
配置文件的读取,纯C代码
查看>>
UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解
查看>>
基于蓝牙设备的移植
查看>>
linux中的时间函数
查看>>
Linux系统中的计时机制及相关时间函数
查看>>