2019-05-22 15:13:55 kkkkk0826 阅读数 403
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15698 人正在学习 去看看 传智

微信开发接口API协议,出自冬天不穿秋裤,天冷也要风度的程序猿之手,必属精品!

一、网络通讯协议

如上图,采用 datalength+databytes 的自定义长度的协议,其中:

datalength:紧跟其后的databytes的数据长度(不包含自身长度),占4字节

databytes:protobuf 3.0协议数据序列化后的数据内容,长度不限

二、网络应答模型

1、业务消息

服务端客户端间的消息大致分为以下四类:

1)通知类消息

通常由客户端发往服务器端,或者由服务器端发往客服客户端,接收方一般需要作出接收确认回复或不回复(默认成功异常时回复)。

2)客户端同步请求类消息

通常由手机客户端或客服客户端发出,服务端需要回复对应的响应消息。

3)服务器端指令类消息

通常是由服务器或者客服客户端发出的操作手机客户端的指令类消息,手机客户端收到后一般需要回复接收成功确认消息,并在后续执行完指令后回复发送结果通知消息。

客户端在与服务器建立连接后,需要先发送DeviceAuthReq请求获取accesstoken后才能正常进行后续通信,建立连接时的通信时序图如下:

2、心跳机制

已于服务器建立连接的客户端需要每隔1分钟发送一个心跳包,时序图如下:

三、Protobuf消息定义

所有业务消息都转化为protobuf消息进行序列化后传输,不同命令对应的消息使用protobuf的Any类型嵌套入根消息,接收方在收到根消息后根据命令码反序列化为相应类型消息。

消息结构定义基本约定:

1)使用proto3语法

2)package 命名空间统一采用 Jubo.JuLiao.IM.Wx.Proto

3)消息命名采用 Pascal命名法,例如 FirstName,LastName

4)时间字段统一用Unix-Timestamp形式

5)message类型名全部为对应MsgType+Message后缀,如MsgType=DeviceAuthReq的消息的消息结构名定义为 message DeviceAuthReqMessage{}

根消息(TransportMessage)

根消息代表最终直接序列化为网络字节流的消息,其中应包含基本的发送方信息(用于授权认证)和其包含的具体的业务命令消息及命令码标识。

所有的其他类型的消息都应该赋值到根消息的Content字段,并将MsgType字段设为对应值,之后将TransportMessage数据序列化做网络传输。接收方在收到消息后根据MsgType将Content内容反序列化成对应的强类型消息。

sdk功能模块请参考:http://www.yunlauncher.com/Blog/articles/119.html

1、基础消息类型

1、客户端发送的心跳包

HeartBeatReq = 1001;

2、消息接收确认回复(接收或拒绝接收)

MsgReceivedAck = 1002;

3、错误单独提升为一种消息类型

Error = 1003;

2、设备客户端授权类消息

1、设备(手机客户端、客服客户端)获取通信token请求

DeviceAuthReq = 1010;

2、设备(手机客户端、客服客户端)获取通信token响应

DeviceAuthRsp = 1011;

3、设备授权后退出(仅用于服务端内部)

DeviceExitNotice = 1012;

4、账号强制下线通知

AccountForceOfflineNotice = 1013;

3、手机客户端上传的通知类消息

1、手机客户端微信上线通知

WeChatOnlineNotice = 1020;

2、手机客户端微信下线通知

WeChatOfflineNotice = 1021;

3、微信个人号新增好友通知

FriendAddNotice = 1022;

4、微信个人号移除好友通知

FriendDelNotice = 1023;

5、微信好友发来聊天消息

FriendTalkNotice = 1024;

6、任务执行结果通知

TaskResultNotice = 1025;

7、手机上回复好友的聊天消息

WeChatTalkToFriendNotice = 1026;

8、有好友请求添加好友的通知

FriendAddReqeustNotice = 1027;

9、手机端向服务端通知聊天执行结果

TalkToFriendTaskResultNotice = 1028;

10、图片或视频消息的详细内容结果

RequestTalkDetailTaskResultNotice = 1029;

11、上传手机客户端上微信的二维码

PullWeChatQrCodeTaskResultNotice = 1030;

12、手机上发送了朋友圈通知

CircleNewPublishNotice = 1031;

13、手机上删除朋友圈通知

CircleDelNotice = 1032;

14、手机检测到有人点赞/取消点赞通知

CircleLikeNotice = 1033;

15、手机检测到有人评论/删除朋友圈通知

CircleCommentNotice = 1034;

16、消息标记为已读

PostMessageReadNotice = 1035;

17、联系人信息上传

ContactsInfoNotice = 1036;

18、群聊新增通知

ChatRoomAddNotice = 1037;

19、联系人标签新增,修改通知

ContactLabelAddNotice = 1038;

20、收钱任务执行结果通知

TakeMoneyTaskResultNotice = 1039;

21、朋友圈图片上传

CircleDetailNotice = 1040;

22、群聊删除通知

ChatRoomDelNotice = 1041;

23、群聊信息变更通知

ChatRoomChangedNotice = 1042;

24、群二维码

PullChatRoomQrCodeTaskResultNotice = 1043;

4、服务端、客服客户端发给设备的指令类消息

1、给好友发消息任务

TalkToFriendTask = 1070;

2、发送朋友圈任务

PostSNSNewsTask = 1071;

3、主动添加好友任务

AddFriendsTask = 1072;

4、发送朋友圈任务后数据回传

PostSNSNewsTaskResultNotice = 1073;

5、删除朋友圈

DeleteSNSNewsTask = 1074;

6、客户端或者服务端接受好友请求通知

AcceptFriendAddRequestTask = 1075;

7、群发消息任务

WeChatGroupSendTask = 1076;

8、执行养号动作命令

WeChatMaintenanceTask = 1077;

9、请求图片或视频消息的详细内容

RequestTalkDetailTask = 1078;

10、服务端主动要求手机上传当前登录的微信二维码

PullWeChatQrCodeTask = 1079;

11、触发手机推送好友列表任务

TriggerFriendPushTask = 1080;

12、触发手机推送朋友圈列表任务

TriggerCirclePushTask = 1081;

13、朋友圈评论删除任务

CircleCommentDeleteTask = 1082;

14、朋友圈评论删除任务反馈

CircleCommentDeleteTaskResultNotice = 1083;

15、朋友圈评论回复任务

CircleCommentReplyTask = 1084;

16、朋友圈评论回复反馈

CircleCommentReplyTaskResultNotice = 1085;

17、通知手机将某个聊天窗口置为已读

TriggerMessageReadTask = 1086;

18、消息撤回

RevokeMessageTask = 1087;

19、转发消息

ForwardMessageTask = 1088;

20、通知手机推送聊天记录

TriggerHistoryMsgPushTask = 1089;

21、获取群聊二维码

PullChatRoomQrCodeTask = 1090;

5、服务端通知执行的命令

1、服务端通知pc客户版本升级

UpgradeAppNotice = 1093;

2、通知手机客户端软件升级

UpgradeDeviceAppNotice = 1094;

3、清粉任务

PostFriendDetectTask = 1095;

4、终止清粉任务

PostStopFriendDetectTask = 1096;

5、删除设备通知

PostDeleteDeviceNotice = 1097;

6、朋友圈点赞任务

PostMomentsPraiseTask = 1098;

7、停止朋友圈点赞任务

PostStopMomentsPraiseTask = 1099;

8、养号任务停止

PostStopWeChatMaintenanceTask = 1100;

9、修改备注任务

ModifyFriendMemoTask = 1101;

10、领取红包或转账

TakeLuckyMoneyTask = 1200;

11、获取指定好友朋友圈

PullFriendCircleTask = 1201;

12、获取朋友圈图片

PullCircleDetailTask = 1202;

13、单条朋友圈点赞任务

CircleLikeTask = 1203;

14、触发手机推送群聊列表

TriggerChatroomPushTask = 1210;

15、请求具体群聊的详细信息

RequestChatRoomInfoTask = 1211;

16、获取联系人详细信息(不一定是好友,如群聊成员)

RequestContactsInfoTask = 1212;

17、群聊管理

ChatRoomActionTask = 1213;

18、群内加好友

AddFriendInChatRoomTask = 1214;

19、通讯录加好友

AddFriendFromPhonebookTask = 1215;

20、删除好友

DeleteFriendTask = 1216;

21、发红包

SendLuckyMoneyTask = 1217;

22、获取聊天消息的原始内容(主要是xml内容)

RequestTalkContentTask = 1218;

23、返回聊天消息的原始内容

RequestTalkContentTaskResultNotice = 1219;

24、转发消息内容

ForwardMessageByContentTask = 1220;

6、手机端主动发出的交互类消息

1、手机端推送好友列表

FriendPushNotice = 2026;

2、手机端推送当前安装版本

PostDeviceInfoNotice = 2027;

3、手机端回传检测清粉好友数

PostFriendDetectCountNotice = 2028;

4、手机回传朋友圈数据

CirclePushNotice = 2029;

5、手机回传朋友圈点赞数量

PostMomentsPraiseCountNotice = 2030;

9、手机端推送群聊列表

ChatroomPushNotice = 2031;

7、手机端推送标签列表

ContactLabelInfoNotice = 2032;

8、推送历史消息

HistoryMsgPushNotice = 2033;

9、群成员(陌生人)信息

ChatRoomMembersNotice = 2034;

sdk适用于微信营销软件研发、微信营销手机研发、微信手机群控云控系统研发、微信SCRM客服系统研发、微信营销工具研发、淘宝客机器人、导购返利机器人研发等,目前【聚客通】【有客来】等scrm都是基于这个sdk二次开发的。

接口参考http://www.yunlauncher.com/Blog/articles/119.html 项目地址:https://www.wuliaokankan.cn/url301/138.html
2016-10-09 08:57:00 miaozhenzhong 阅读数 2313
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15698 人正在学习 去看看 传智
2015-08-28 11:58:38 u010773333 阅读数 7459
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15698 人正在学习 去看看 传智

对于微信开发少不了用到微信接口,对于微信外放的这个在线接口调试工具,我还是非常喜欢的。

下面介绍一下具体的使用情况。

这个工具在公众号中的开发中心下面有个开发者工具菜单里面有个在线接口调试工具点击就ok了。

调试界面如图

说到接口调试,一般要了解一个名词“access_token” 什么是access_token

微信官方给的解释:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。 

像这样的输入自己公众号的appid 和secret。这两个参数可以在公众号开发中心开发者ID里面获得,其中secret是暗码需要显示完整操作。

输入之后点击绿色的查看问题就可以得到如下类似的界面,值得注意的是access_token会失效。

获得了access_token 就好办了

下一步举个例子大家就会用了


  可以选择用户管理

把上一步得到的access_token值复制过来

就可以获得所有关注过此用户的openid(针对这个公众号,用户手机客户端微信号的唯一表示)

再通过access_token和openid可以某个用户的个人信息


至此调用在线调试接口基本都差不多,举了以上例子应该可以学会了,又没懂的可以私发我。



2018-09-05 00:30:38 liuzhaoyun 阅读数 603
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15698 人正在学习 去看看 传智

    笔者在开发微信客服接口时,给客户回复文本消息“你好”时,但出现了以下的字符:\u60a8\u597d。

    这当然不是我们想要的,我们需要的是给客户回复中文字符“您好”。

    找了一些网上的资料,但差不多都是JAVA的,有一个朋友写的挺好使的。就是在我们把数组进行json_encode时,加个JSON_UNESCAPED_UNICODE。据说这个是为了Json不要编码Unicode。直接上代码吧。

$data = json_encode($data,JSON_UNESCAPED_UNICODE);

     就这么简单,想要的效果出现了,直接上图片。

    

    真是会的不难,难的不会。希望能帮助到老铁们。

2019-03-26 16:13:01 sunfellow2009 阅读数 303
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15698 人正在学习 去看看 传智

转自 https://github.com/tangjinjinwx/Public.WeChat.CRM.SDK

个人微信号二次开发sdk协议,微信个人号开发API接口
微信SDK程序概要说明
非微信ipad协议、非mac协议,非安卓协议,api可实现微信99%功能;
无需扫码登录、可收发朋友圈、查看朋友圈、朋友圈互动点赞、评论、
好友列表、微信消息收发、发文本消息、图片消息、名片消息、动图表情、发文件、删好友
添加好友、微信转账、微信红包接收、分享小程序、分享名片、加通讯录好友、微信收藏、微信标签等!
清理僵尸粉、消息群发、通过好友请求、
微信建群、微信拉人进群、踢群成员、邀请群成员、退群、改群名称、群列表、发布群公告、多群消息同步等
微信公众号阅读、关注与取消关注公众号、公众号列表信息、清理微信空间…功能太多懒得写了!!!
咨询请加微信tangjinjinwx

本SDK适用于微信营销软件研发、微信营销手机研发、微信手机群控系统研发、云控系统研发、微信客服系统研发、微信营销系统研发、 微客微商营销工具研发、微信scrm客服系统研发、淘宝客微信发单机器人研发、导购返利机器人研发、微信群管理机器人研发等。 使用此sdk可快速实现微信的二次开发,让你轻松开发出上述软件功能。 SDK接入简单、兼容性好、拓展性强,始终支持微信官方最新版本,并定时维护升级,可按需定制! 功能参考接口参考http://www.yunlauncher.com/Blog/articles/119.html

微信sdk方案特色
1、无需扫码登陆微信:区别传统的网页协议版微信和ipad协议版微信,我们的解决方案是不需要扫码登陆微信的,更快捷,更高效!

2、提供二次开发SDK:我们为合作伙伴提供完整的二次开发sdk,使用sdk可研发各类基于微信的营销系统及软件等!

3、2W多设备稳定商用:目前已有多家合作伙伴与我们签约合作,累计出货20000多台设备,所有设备稳定!

没有更多推荐了,返回首页