相对于起步早的微信小程序来说,网上有关支付宝小程序的相关案例要少许多(一问度娘,皆是微信小程序),更别说用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('请求失败')
}
});
}
},
#导入必要的包
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)