相应的公钥私钥的获取,请参考上一章( 支付宝小程序+Django获取会员基础信息(获取用户唯一标识 user_id和access_token)的内容
------前言
支付宝小程序与微信小程序实现模板消息的方式一样,都提供两种实现模板消息的方式。一种是表单提交的形式,一种是支付的形式,在这里介绍的是表单提交的方式。具体的内容可以参考官网
------准备
1.在开发中心---小程序应用---选择小程序---开发管理--功能列表中添加‘小程序模板消息’的功能。
在这里插入图片描述
2.在“支付宝小程序---运营中心---留存工具---模板消息”中添加消息模板
在这里插入图片描述
这里的模板ID和关键词,是我们接下来需要用到的东东。
在这里插入图片描述
------支付宝小程序端
官网解释:页面的form组件,属性report-submit为true时,可以声明为需发模板消息,此时用户点击按钮提交表单可以获取formId,用于发送表单类模板消息。
index.axml
<form report-submit="{{true}}" onSubmit="formSubmit" onReset="formReset">
<button size="default" type="primary" form-type="submit" class="btn_style"></button>
</form>
通过formSubmit方法,提交formID到后端,实现模板消息发送。
index.js
formSubmit: function (e) {
console.log('formId:',e.detail.formId)
my.request({
url: '',//目标服务器
data: {
form_id:e.detail.formId
},
success: res => {
console.log('成功')
},
fail:res=>{
console.log('失败')
}
})
},
------Django后端
from django.http import HttpResponse,JsonResponse
from alipay.aop.api.DefaultAlipayClient import DefaultAlipayClient
from alipay.aop.api.request.AlipayOpenAppMiniTemplatemessageSendRequest import AlipayOpenAppMiniTemplatemessageSendRequest
from alipay.aop.api.AlipayClientConfig import AlipayClientConfig
#接收小程序端的数据,并返回给小程序端数据
def send_message(request):
form_id=request.GET['form_id']
zfb_senmessage(form_id)
return HttpResponse('返回结果')
#实现模板消息发送
def zfb_senmessage(form_id):
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)
send_message_request=AlipayOpenAppMiniTemplatemessageSendRequest()
send_message_request.biz_content={
#用户的use_id,[可参考上一篇文章获取](https://blog.csdn.net/qq_42278240/article/details/102707632)
"to_user_id":'填入use_id',
"form_id":form_id,
"user_template_id":"填入模板ID",
"page":"page/index/index",
"data":{"keyword1":{"value":""},
"keyword2":{"value":""},
"keyword3":{"value":""}
}
}
user_info_dict = AlipayClient.execute(send_message_request)
result = json.loads(user_info_dict)
print('模板消息请求结果:',result)
------结束
这里存在一个问题,模板消息请求结果显示formid不合法,但是却依旧可以发送服务消息。这个问题还未解决,有经验的PY侠,可以在下面评论,点悟下我,谢谢。