收藏
回答

小程序客服消息推送 40003

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 需求 客户端 7.0.0 2.5.0

- 需求的场景描述(希望解决的问题)


小程序客服消息推送,实现自动回复功能

POST xml数据到微信服务器后返回40003的错误

所以是我传的xml格式有问题,还是touser这个参数有问题,touser有问题的话,这个参数值要从哪里获取


- 希望提供的能力



以下是用户点击小程序按钮进入客服界面后,我的服务器收到的信息:

<xml><ToUserName><![CDATA[xxxxxxxxxxxxxxx]]></ToUserName>

<FromUserName><![CDATA[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]]></FromUserName>

<CreateTime>1548120142</CreateTime>

<MsgType><![CDATA[event]]></MsgType>

<Event><![CDATA[user_enter_tempsession]]></Event>

<SessionFrom><![CDATA[来哩ho小程序]]></SessionFrom>

</xml>



以下是我服务器收到信息后作出的处理(部分代码):

$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" . $access_token;

用我服务器收到的FromUserName作为touser的参数值:

$fromUsername = $object->FromUserName; //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


$xmlData = "<xml><touser><![CDATA[".$fromUsername."]]></touser>

<msgtype><![CDATA[text]]></msgtype>

<content><![CDATA[halo u]]></content>

</xml>";


$header[] = "Content-type: text/xml";

$ch = curl_init ($url);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

curl_setopt($ch, CURLOPT_HTTPHEADER,$header);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch,CURLOPT_POSTFIELDS, $xmlData);

$response = curl_exec($ch);

if(curl_errno($ch)){

printcurl_error($ch);

}

curl_close($ch);


以下是返回的错误:

{"errcode":40003,"errmsg":"invalid openid hint: [QuAtaA01434104]"}

最后一次编辑于  2019-01-22
回答关注问题邀请回答
收藏

5 个回答

  • 南
    2019-01-31

    官方的报错误导人     事实上需要在http请求明确发送的是字符串格式的json内容就可以了  

    一般都是错在这里


    并不是用错了其他号的access_token 和 openid有误

    2019-01-31
    有用 2
    回复 1
  • 雨辰的烊光
    雨辰的烊光
    发表于移动端
    2020-06-18
    你好,能加我微信吗?可以跟你聊聊?有事找你帮忙
    2020-06-18
    有用
    回复
  • 栗(lì)华山(巡检)
    栗(lì)华山(巡检)
    2019-12-24

    我确实是access_token 搞错了,换过来就好了

    2019-12-24
    有用
    回复
  • J.
    J.
    2019-01-29

    可能是有两种问题:1. 用错了其他号的access_token 2. openid有误

    这里要注意一个appid下的openid,在另一个appid里是无意义的。


    如果还有问题,可以给出调用出错所用的access_token和openid,这边帮忙检查下。

    2019-01-29
    有用
    回复 1
    • J.
      J.
      2019-03-13回复程远博

      这是调用了哪个接口?

      2019-03-13
      回复
  • 是小白啊
    是小白啊
    2019-01-22

    看下是不是对应的openid的token使用错了

    2019-01-22
    有用
    回复 1
    • 2019-01-22

      access_token是用小程序的appid和appSecret 生成的:

      https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxxx&&secret=xxxxxxxxxxxxxxx

      2019-01-22
      回复
登录 后发表内容