支付宝小程序+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侠,可以在下面评论,点悟下我,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。