收藏
回答

模板消息包含中文时报47001

问题模块
API和组件

后台业务代码如下(文件编码是UTF-8):

--------------------------------------------------------------------------------

var ctmntyoptions = {

hostname: 'api.weixin.qq.com',

path: '',

method: 'POST',

headers: {

'Content-Type': 'application/json; charset=utf-8',

'Content-Length': ''

}

}


const SendTemplateMsgToCustomer = (_acctoken, notifyparams) => {

return new Promise(function (resolve) {

ctmntyoptions.path = strCtmNotifyPath + _acctoken

let strparams = JSON.stringify(notifyparams)

ctmntyoptions.headers['Content-Length'] = strparams.length

var notifyreq = https.request(ctmntyoptions, function (notifyres) {

var _notifyrtn = ''

notifyres.on('data', function (_rtndata) {

_notifyrtn += _rtndata

})

notifyres.on('end', function () {

let _rtndata = JSON.parse(_notifyrtn)

if (_rtndata && 'errcode' in _rtndata) {

if (_rtndata.errcode === 0) {

resolve(true)

} else {

resolve(false)

}

} else {

resolve(false)

}

})

})

notifyreq.on('error', (e) => {

console.log('Send template msg request fail', e)

})

notifyreq.write(strparams)

notifyreq.end()

})

}

--------------------------------------------------------------------------------


日志数据:

{"touser":"oRuoC0ZwC6QPNcdyr9A********","template_id":"Fbn5W7r1fo2cwbhIl2M5*******","form_id":"wx20171114101441532f5fbfe508990*****","data":{"keyword1":{"value":"20171114082329*****10101"},"keyword2":{"value":"2017年11月14日 10:14:46"},"keyword3":{"value":"总部"},"keyword4":{"value":"0.2 元"},"keyword5":{"value":null}}}


返回数据:

{"errcode":47001,"errmsg":"data format error hint: [zwWEQA0687ge21]"}



当模板数据里包含中文时,就返回47001,发送不成功。

但是当我把中文去掉,模板消息就能发送成功。

最后一次编辑于  2017-11-14
回答关注问题邀请回答
收藏

1 个回答

  • gaood
    gaood
    2017-11-22


    你是怎么解决的啊?我也出一样的问题了

    2017-11-22
    赞同
    回复