后台业务代码如下(文件编码是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,发送不成功。
但是当我把中文去掉,模板消息就能发送成功。
请问解决了吗。。。
你是怎么解决的啊?我也出一样的问题了