• 提交表单后发模板消息

    提交表单后发模板消息

    想要让用户提交表单后发送一条模板消息给用户,首先需要在小程序表单标签里加上report-submit参数,如:

    1. <form bindsubmit="formSubmit" report-submit="true">
    2. <view class="btn-area">
    3. <button formType="submit">发个模板消息</button>
    4. </view>
    5. </form>

    然后在表单提交后端服务器时带上参数formId和openid

    1. formSubmit: function (e) {
    2. var formId = e.detail.formId
    3. wx.request({
    4. url: app.url + 'weiapp/Api/send_message&PHPSESSID=' + wx.getStorageSync('PHPSESSID'),
    5. data: { formId: formId, openid: wx.getStorageSync('openid') },
    6. success: function (res) {
    7. // success
    8. console.log(res)
    9. }
    10. })
    11. },

    最后在后端PHP服务器发起一个模板消息请求。其中模板ID参数(template_id)就是我们上一节消息模板配置里增加的模板ID,而data里的keyword参数个数需要与您配置的模板里的参数一一对应。

    1. function send_message() {
    2. // 发送模板消息给用户
    3. $openid = I ( 'openid' );
    4. $formId = I ( 'formId' );
    5. $url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' . get_access_token ();
    6. $param ['touser'] = $openid;
    7. $param ['template_id'] = '-ekG5kJ-8x7OkTxd1shG-5-y90q8El5vj0DKVGwTZ9o';
    8. $param ['form_id'] = $formId;
    9. $param ['data'] = [
    10. 'keyword1' => [
    11. 'value' => '1706261498468955374',
    12. 'color' => '#173177'
    13. ],
    14. 'keyword2' => [
    15. 'value' => '1.00元',
    16. 'color' => '#173177'
    17. ],
    18. 'keyword3' => [
    19. 'value' => '2017-05-25 14:30',
    20. 'color' => '#173177'
    21. ],
    22. 'keyword4' => [
    23. 'value' => '梦云商城-服务购买',
    24. 'color' => '#173177'
    25. ],
    26. 'keyword5' => [
    27. 'value' => '已完成支付',
    28. 'color' => '#173177'
    29. ],
    30. 'keyword6' => [
    31. 'value' => '微信支付',
    32. 'color' => '#173177'
    33. ]
    34. ];
    35. $res = post_data ( $url, $param );
    36. echo json_url ( $res );
    37. }

    小程序端发送模板消息请查看 /weiapp_demo/pages/message/message.js文件

    注意:由于开发者工具里的formId只是一个模拟值,不正确的,因此在开发者工具里无法发起消息模板,必须要使用手机预览里只能正常