发送模板消息不成功
发布于 6 年前 作者 kxu 4199 次浏览 来自 问答

首先说明,我是在开发工具环境下运行的,获取得到的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)

    }

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

5 回复

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

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

array(2) {

  [“errcode”]=>

  int(47001)

  [“errmsg”]=>

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

}

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

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

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

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

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

回到顶部