微信接口说明

优质
小牛编辑
114浏览
2023-12-01
接口开发说明:
接入方在采用微信开发模式对接时,需要进行中转服务和接口的开发
真Token方案:需集成方开发接口说明中"获取微信Token接口"
假Token方案:需集成方开发接口说明中全部接口

1. 接收消息接口

该接口用于发送与接收文字信息,请参考链接中的客服接口-发消息开发规范:消息接收微信文档

消息接收接口规范:(需注意,提供的接口,不能带参数)
正确举例:
https://api.weixin.qq.com/cgi-bin/message/custom/send
错误举例:
https://api.weixin.qq.com/cgi-bin/message/custom/send?name=123
小能发的消息是一个json包,并非XML,格式参考微信规范文档要求:
Json数据类型:Content-type=application/json
各消息类型所需的JSON数据包如下: 
发送文本消息 
{
    "touser":"OPENID",
    "msgtype":"text",
    "text":
    {
         "content":"Hello World"
    }
}
发送图片消息 
{
    "touser":"OPENID",
    "msgtype":"image",
    "image":
    {
      "media_id":"MEDIA_ID"
    }
}
发送语音消息 
{
    "touser":"OPENID",
    "msgtype":"voice",
    "voice":
    {
      "media_id":"MEDIA_ID"
    }
}

2. 获取微信Token接口

该接口用于模拟小能方获取微信Token,请参考链接中的获取access-token开发规范:Token接口规范文档

如采用微信真Token方案,需在接口返回与微信进行验证的真实Token值

如采用微信假Token方案,只需根据规范格式返回参数即可

示例:
A:http请求方式: GET
B:正确举例(请勿加参数):
https://api.weixin.qq.com/cgi-bin/token
C:错误举例:
https://api.weixin.qq.com/cgi-bin/token?name=123
D:参数要求(小能访问token接口自动加的参数):
其中appid和secret,这里是模拟微信的要求,所以,此处的这两个值,是假值,并非真的appid和secret
参数是否必须说明
grant_type获取access_token填写client_credential
appid第三方用户唯一凭证
secret第三方用户唯一凭证密钥,即appsecret

小能请求中转服务模拟的Token接口,中转服务返回响应,返回格式要求:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200
}
参数说明
access_token获取到的凭证
expires_in凭证有效时间,单位:秒

由于Token接口,appid和secret都是模拟出来的假的,所以,返回的响应,也是按照微信的格式要求

建议:

A:access_token,由于只有小能和中转服务交互使用,最好做成固定的,并非一定要做成动态的

B:多个公众号接入小能,可根据appid和secret,返回access_token做成不同的值,用于openid做映射,区别此openid对应的真实微信原始ID

3. 多媒体文件下载接口

小能从XML消息里面,取出media_id,按照微信的规范要求,去中转服务那里下载此语音文件。这里需要集成方的中转服务开发一个多媒体文件下载接口:下载临时多媒体文件文档

(下面多媒体文件文档说明)

A:http请求方式:GET

B:请勿在接口地址后面添加参数(小能会自动添加)

正确接口样例:

https://api.weixin.qq.com/cgi-bin/media/get

错误接口样例:

https://api.weixin.qq.com/cgi-bin/media/get?name=123

C:小能请求下载接口地址的示例格式:

http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID

参数是否必须说明
access_token调用接口凭证
media_id媒体文件ID

中转服务返回响应,返回相应说明

返回说明:

正确情况下的返回HTTP头如下:

HTTP/1.1 200 OK
Connection: close
Content-Type: image/jpeg
Content-disposition: attachment; filename="MEDIA_ID.jpg"
Date: Sun, 06 Jan 2013 10:20:18 GMT
Cache-Control: no-cache, must-revalidate
Content-Length: 339721
curl -G "https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID"

4. 多媒体文件上传接口

小能请求中转服务上传多媒体文件接口,需要集成方的中转服务开发此接口。上传临时多媒体文件文档

A:http请求方式:POST/FORM

B:接口避免添加参数(小能会自动添加参数)

正确格式:

http://api.weixin.qq.com/cgi-bin/media/upload

错误格式:

http://api.weixin.qq.com/cgi-bin/media/upload?name=123

C:调用示例:

http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE

参数是否必须描述
access_token调用接口凭证
type媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
mediaform-data中媒体文件标识,有filename、filelength、content-type等信息

小能把图片上传给中转服务之后,需中转服务,实时上传给微信

微信收到中转服务上传的图片,返回给中转服务一个响应

正确情况下的返回JSON数据包结果如下:

{
  "type":"TYPE",
  "media_id":"MEDIA_ID",
  "created_at":123456789
}
参数描述
type媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)
media_id媒体文件上传后,获取时的唯一标识
created_at媒体文件上传时间戳

5. 获取微信用户昵称信息接口

用于在客服端显示访客微信昵称(不开发默认显示访客openID),需集成方中转服务开发一个用户信息接口:获取用户昵称文档

返回说明,昵称取自nickname字段的值:

{
  "subscribe": 1, 
  "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
  "nickname": "Band", 
  "sex": 1, 
  "language": "zh_CN", 
  "city": "广州", 
  "province": "广东", 
  "country": "中国", 
  "headimgurl":"http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", 
  "subscribe_time": 1382694957,
  "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
  "remark": "",
  "groupid": 0
}