相應的公鑰私鑰的獲取,請參考上一章( 支付寶小程序+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俠,可以在下面評論,點悟下我,謝謝。