收藏
回答

发送模板消息不成功

问题模块
API和组件

首先说明,我是在开发工具环境下运行的,获取得到的formId为:"the formId is a mock one"。继续:

  1. 获取access_token

  2. 访问接口地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET,

    得到token:

    array(2) {

      ["access_token"]=>

      string(138) "iqHh-ixElcCeBQf6KpYiJ0-oSRkl3WUskKNlHS1fptHSDQ0wfJTw8hGJWVwtLNefXl0Jtq1r8dy70pOWwg4EOcH3GOrIEVZfrNDLvGoUarOlYoulN16VfEuTdv-JW0a1OYOaAEARBR"

      ["expires_in"]=>

      int(7200)

    }

  3. 发送模板消息

  4. 访问接口地址:https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN

    POST数据为:

            $data = array ("touser" => $oid,

                           "template_id" => "l54PVNXqYmp1rUDh4oPgFvGS5WThK2oN2rL20ztQYg",

                           "form_id" => $fid,

                           "data" => array ("keyword1" => array ( "value" => $name ),

                                            "keyword2" => array ( "value" => $gender ),

                                            "keyword3" => array ( "value" => date() )

                                           )

                          );

    但是返回的数据貌似是又一次获取了access_token:

    array(2) {

      ["access_token"]=>

      string(138) "iqHh-ixElcCeBQf6KpYiJ0-oSRkl3WUskKNlHS1fptGmAFDUiNAawF6uUE36YPh2AWejLYyEGYMkNFTAZIKPmoLSLwQcLQWDxkDZluLoWmJKzF_0yIr3DqCqmiMNuhGrQCSaAEAKWM"

      ["expires_in"]=>

      int(7198)

    }


怎么回事泥?(怎么没有“模板消息”标签??)

最后一次编辑于  2017-09-29  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • Mr. ♥
    Mr. ♥
    2017-09-29

    IDE 里的 formid 不可用,需要真机。“the formId is a mock one” 翻译过来就是“这是一个虚拟的 formid”。


    第二点的话你再多截点儿呗,发的地址填的确定对?抓包看下真的是发送模板消息的地址?

    2017-09-29
    赞同
    回复
  • 简戎信息
    简戎信息
    2017-09-29

    是我的错,发送地址不对。但是现在仍然有问题,发送消息时,返回:

    array(2) {

      ["errcode"]=>

      int(47001)

      ["errmsg"]=>

      string(40) "data format error hint: [206T3a0292ge25]"

    }

    数据格式怎么错了呢?看不出来 ……

    2017-09-29
    赞同
    回复
  • Mr. ♥
    Mr. ♥
    2017-09-29

    把你 POST 的东西用打印成真正的 JSON 字符串看一下,或者用 Fiddler 之类的截个包。

    2017-09-29
    赞同
    回复
  • 大稳·杨
    大稳·杨
    2018-04-02

    formid从哪获取的?我这边是服务器端,接口里面能获取到formid吗?

    2018-04-02
    赞同
    回复
  • 简戎信息
    简戎信息
    2018-04-02

    formid是在客户端获取然后发送到服务器端的。

    2018-04-02
    赞同
    回复