支付寶小程序+Django實現模板消息

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章