diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/Cgibin/CgibinGetCallbackIpRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/Cgibin/CgibinGetCallbackIpRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/Cgibin/CgibinGetCallbackIpRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/Cgibin/CgibinGetCallbackIpResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/Cgibin/CgibinGetCallbackIpResponse.json
new file mode 100644
index 00000000..7ded8485
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/Cgibin/CgibinGetCallbackIpResponse.json
@@ -0,0 +1,3 @@
+{
+ "ip_list": [ "101.226.103.*", "101.226.62.*" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAgent/CgibinAgentSetScopeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAgent/CgibinAgentSetScopeRequest.json
new file mode 100644
index 00000000..11a8fa55
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAgent/CgibinAgentSetScopeRequest.json
@@ -0,0 +1,6 @@
+{
+ "agentid": 1,
+ "allow_user": [ "zhansan", "lisi" ],
+ "allow_party": [ 1, 2, 3 ],
+ "allow_tag": [ 1, 2, 3 ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAgent/CgibinAgentSetScopeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAgent/CgibinAgentSetScopeResponse.json
new file mode 100644
index 00000000..a69c9edb
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAgent/CgibinAgentSetScopeResponse.json
@@ -0,0 +1,7 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "invaliduser": [ "zhangshan", "lisi" ],
+ "invalidparty": [ 2, 3 ],
+ "invalidtag": [ 2, 3 ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatCreateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatCreateRequest.json
new file mode 100644
index 00000000..0e5ab7bf
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatCreateRequest.json
@@ -0,0 +1,6 @@
+{
+ "name": "NAME",
+ "owner": "userid1",
+ "userlist": [ "userid1", "userid2", "userid3" ],
+ "chatid": "CHATID"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatCreateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatCreateResponse.json
new file mode 100644
index 00000000..474682e3
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatCreateResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "chatid": "CHATID"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatGetRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatGetRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatGetResponse.json
new file mode 100644
index 00000000..c73bab04
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatGetResponse.json
@@ -0,0 +1,10 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "chat_info": {
+ "chatid": "CHATID",
+ "name": "NAME",
+ "owner": "userid2",
+ "userlist": [ "userid1", "userid2", "userid3" ]
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatSendRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatSendRequest.json
new file mode 100644
index 00000000..9ab6ba03
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatSendRequest.json
@@ -0,0 +1,53 @@
+{
+ "chatid": "CHATID",
+ "msgtype": "text",
+ "text": {
+ "content": "你的快递已到\n请携带工卡前往邮件中心领取"
+ },
+ "image": {
+ "media_id": "MEDIAID"
+ },
+ "voice": {
+ "media_id": "MEDIA_ID"
+ },
+ "video": {
+ "media_id": "MEDIA_ID",
+ "description": "Description",
+ "title": "Title"
+ },
+ "file": {
+ "media_id": "1Yv-zXfHjSjU-7LH-GwtYqDGS-zz6w22KmWAT5COgP7o"
+ },
+ "textcard": {
+ "title": "领奖通知",
+ "description": "
2016年9月26日
恭喜你抽中iPhone 7一台,领奖码:520258
请于2016年10月10日前联系行 政同事领取
",
+ "url": "https://work.weixin.qq.com/",
+ "btntxt": "更多"
+ },
+ "news": {
+ "articles": [
+ {
+ "title": "中秋节礼品领取",
+ "description": "今年中秋节公司有豪礼相送",
+ "url": "https://work.weixin.qq.com/",
+ "picurl": "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
+ }
+ ]
+ },
+ "mpnews": {
+ "articles": [
+ {
+ "title": "地球一小时",
+ "thumb_media_id": "biz_get(image)",
+ "author": "Author",
+ "content_source_url": "https://work.weixin.qq.com",
+ "content": "3月24日20:30-21:30 \n办公区将关闭照明一小时,请各部门同事相互转告",
+ "digest": "3月24日20:30-21:30 \n办公区将关闭照明一小时"
+ }
+ ]
+ },
+ "markdown": {
+ "content": "您的会议室已经预定,稍后会同步到`邮箱`>**事项详情**>事 项:开会>组织者:@miglioguan>参与者:@miglioguan、@kunliu、@jamdeezhou、@kanexiong、@kisonwang>>会议室:广州TIT 1楼 301>日 期:2018年5月18日>时 间:上午9:00-11:00>>请准时参加会议。>>如需修改会议信息,请点击:[修改会议信息](https://work.weixin.qq.com)"
+ },
+ "safe": 0
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatSendResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatSendResponse.json
new file mode 100644
index 00000000..4dfc6cba
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatSendResponse.json
@@ -0,0 +1,4 @@
+{
+ "errcode": 0,
+ "errmsg": "ok"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatUpdateRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatUpdateRequest.json
new file mode 100644
index 00000000..11510b25
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatUpdateRequest.json
@@ -0,0 +1,7 @@
+{
+ "chatid": "CHATID",
+ "name": "NAME",
+ "owner": "userid2",
+ "add_user_list": [ "userid1", "userid2", "userid3" ],
+ "del_user_list": [ "userid3", "userid4" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatUpdateResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatUpdateResponse.json
new file mode 100644
index 00000000..4dfc6cba
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinAppChat/CgibinAppChatUpdateResponse.json
@@ -0,0 +1,4 @@
+{
+ "errcode": 0,
+ "errmsg": "ok"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/CgibinExternalContactUnionIdToExternalUserIdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/CgibinExternalContactUnionIdToExternalUserIdRequest.json
new file mode 100644
index 00000000..9c61c37c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/CgibinExternalContactUnionIdToExternalUserIdRequest.json
@@ -0,0 +1,3 @@
+{
+ "unionid": "oAAAAAAA"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/CgibinExternalContactUnionIdToExternalUserIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/CgibinExternalContactUnionIdToExternalUserIdResponse.json
new file mode 100644
index 00000000..f1688c16
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/CgibinExternalContactUnionIdToExternalUserIdResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "external_userid": "ooAAAAAAAAAAA"
+}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/Message/CgibinExternalContactMessageSendRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/Message/CgibinExternalContactMessageSendRequest.json
new file mode 100644
index 00000000..216bb2eb
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/Message/CgibinExternalContactMessageSendRequest.json
@@ -0,0 +1,57 @@
+{
+ "to_external_user": [ "external_userid1", "external_userid2" ],
+ "to_parent_userid": [ "parent_userid1", "parent_userid2" ],
+ "to_student_userid": [ "student_userid1", "student_userid2" ],
+ "to_party": [ 3, 4 ],
+ "toall": 0,
+ "msgtype": "text",
+ "agentid": 1,
+ "text": {
+ "content": "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看邮件中心视频实况,聪明避开排队。"
+ },
+ "image": {
+ "media_id": "MEDIA_ID"
+ },
+ "voice": {
+ "media_id": "MEDIA_ID"
+ },
+ "video": {
+ "media_id": "MEDIA_ID",
+ "title": "Title",
+ "description": "Description"
+ },
+ "file": {
+ "media_id": "1Yv-zXfHjSjU-7LH-GwtYqDGS-zz6w22KmWAT5COgP7o"
+ },
+ "news": {
+ "articles": [
+ {
+ "title": "中秋节礼品领取",
+ "description": "今年中秋节公司有豪礼相送",
+ "url": "URL",
+ "picurl": "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
+ }
+ ]
+ },
+ "mpnews": {
+ "articles": [
+ {
+ "title": "Title",
+ "thumb_media_id": "MEDIA_ID",
+ "author": "Author",
+ "content_source_url": "URL",
+ "content": "Content",
+ "digest": "Digest description"
+ }
+ ]
+ },
+ "miniprogram": {
+ "appid": "APPID",
+ "title": "欢迎报名夏令营",
+ "thumb_media_id": "MEDIA_ID",
+ "pagepath": "PAGE_PATH"
+ },
+ "enable_id_trans": 0,
+ "enable_duplicate_check": 0,
+ "duplicate_check_interval": 1800
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/Message/CgibinExternalContactMessageSendResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/Message/CgibinExternalContactMessageSendResponse.json
new file mode 100644
index 00000000..3f62ab6f
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinExternalContact/Message/CgibinExternalContactMessageSendResponse.json
@@ -0,0 +1,8 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "invalid_external_user": [ "external_userid1" ],
+ "invalid_parent_userid": [ "parent_userid1" ],
+ "invalid_student_userid": [ "student_userid1" ],
+ "invalid_party": [ 3, 4 ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLinkedCorp/Message/CgibinLinkedCorpMessageSendRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLinkedCorp/Message/CgibinLinkedCorpMessageSendRequest.json
new file mode 100644
index 00000000..6cf9b655
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLinkedCorp/Message/CgibinLinkedCorpMessageSendRequest.json
@@ -0,0 +1,83 @@
+{
+ "touser": [ "userid1", "userid2", "CorpId1/userid1", "CorpId2/userid2" ],
+ "toparty": [ "partyid1", "partyid2", "LinkedId1/partyid1", "LinkedId2/partyid2" ],
+ "totag": [ 3, 4 ],
+ "toall": 0,
+ "msgtype": "text",
+ "agentid": 1,
+ "text": {
+ "content": "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看邮件中心视频实况,聪明避开排队。"
+ },
+ "image": {
+ "media_id": "MEDIA_ID"
+ },
+ "voice": {
+ "media_id": "MEDIA_ID"
+ },
+ "video": {
+ "media_id": "MEDIA_ID",
+ "title": "Title",
+ "description": "Description"
+ },
+ "file": {
+ "media_id": "1Yv-zXfHjSjU-7LH-GwtYqDGS-zz6w22KmWAT5COgP7o"
+ },
+ "textcard": {
+ "title": "领奖通知",
+ "description": "2016年9月26日
恭喜你抽中iPhone 7一台,领奖码:xxxx
请于2016年10月10日前联系行政同事领取
",
+ "url": "URL",
+ "btntxt": "更多"
+ },
+ "news": {
+ "articles": [
+ {
+ "title": "中秋节礼品领取",
+ "description": "今年中秋节公司有豪礼相送",
+ "url": "URL",
+ "picurl": "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png",
+ "btntxt": "更多"
+ }
+ ]
+ },
+ "mpnews": {
+ "articles": [
+ {
+ "title": "Title",
+ "thumb_media_id": "MEDIA_ID",
+ "author": "Author",
+ "content_source_url": "URL",
+ "content": "Content",
+ "digest": "Digest description"
+ }
+ ]
+ },
+ "markdown": {
+ "content": "您的会议室已经预定,稍后会同步到`邮箱`>**事项详情**>事 项:开会>组织者:@miglioguan>参与者:@miglioguan、@kunliu、@jamdeezhou、@kanexiong、@kisonwang>>会议室:广州TIT 1楼 301>日 期:2018年5月18日>时 间:上午9:00-11:00>>请准时参加会议。>>如需修改会议信息,请点击:[修改会议信息](https://work.weixin.qq.com)"
+ },
+ "miniprogram_notice": {
+ "appid": "wx123123123123123",
+ "page": "pages/index?userid=zhangsan&orderid=123123123",
+ "title": "会议室预订成功通知",
+ "description": "4月27日 16:16",
+ "emphasis_first_item": true,
+ "content_item": [
+ {
+ "key": "会议室",
+ "value": "402"
+ },
+ {
+ "key": "会议地点",
+ "value": "广州TIT-402会议室"
+ },
+ {
+ "key": "会议时间",
+ "value": "2018年8月1日 09:00-09:30"
+ },
+ {
+ "key": "参与人员",
+ "value": "周剑轩"
+ }
+ ]
+ },
+ "safe": 0
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLinkedCorp/Message/CgibinLinkedCorpMessageSendResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLinkedCorp/Message/CgibinLinkedCorpMessageSendResponse.json
new file mode 100644
index 00000000..65b3f991
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinLinkedCorp/Message/CgibinLinkedCorpMessageSendResponse.json
@@ -0,0 +1,7 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "invaliduser": [ "userid1", "userid2", "CorpId1/userid1", "CorpId2/userid2" ],
+ "invalidparty": [ "partyid1", "partyid2", "LinkedId1/partyid1", "LinkedId2/partyid2" ],
+ "invalidtag": [ 3, 4 ]
+}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageGetStatisticsRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageGetStatisticsRequest.json
new file mode 100644
index 00000000..0a213ee7
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageGetStatisticsRequest.json
@@ -0,0 +1,3 @@
+{
+ "time_type": 0
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageGetStatisticsResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageGetStatisticsResponse.json
new file mode 100644
index 00000000..ed15199c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageGetStatisticsResponse.json
@@ -0,0 +1,16 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "statistics": [
+ {
+ "agentid": 1000002,
+ "app_name": "应用1",
+ "count": 101
+ },
+ {
+ "agentid": 1000003,
+ "app_name": "应用2",
+ "count": 102
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageSendRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageSendRequest.json
new file mode 100644
index 00000000..39687b9b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageSendRequest.json
@@ -0,0 +1,102 @@
+{
+ "touser": "UserID1|UserID2|UserID3",
+ "toparty": "1|2",
+ "totag": "3|4",
+ "msgtype": "text",
+ "agentid": 1,
+ "text": {
+ "content": "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看邮件中心视频实况,聪明避开排队。"
+ },
+ "image": {
+ "media_id": "MEDIA_ID"
+ },
+ "voice": {
+ "media_id": "MEDIA_ID"
+ },
+ "video": {
+ "media_id": "MEDIA_ID",
+ "title": "Title",
+ "description": "Description"
+ },
+ "file": {
+ "media_id": "1Yv-zXfHjSjU-7LH-GwtYqDGS-zz6w22KmWAT5COgP7o"
+ },
+ "textcard": {
+ "title": "领奖通知",
+ "description": "2016年9月26日
恭喜你抽中iPhone 7一台,领奖码:xxxx
请于2016年10月10日前联系行政同事领取
",
+ "url": "URL",
+ "btntxt": "更多"
+ },
+ "news": {
+ "articles": [
+ {
+ "title": "中秋节礼品领取",
+ "description": "今年中秋节公司有豪礼相送",
+ "url": "URL",
+ "picurl": "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"
+ }
+ ]
+ },
+ "mpnews": {
+ "articles": [
+ {
+ "title": "Title",
+ "thumb_media_id": "MEDIA_ID",
+ "author": "Author",
+ "content_source_url": "URL",
+ "content": "Content",
+ "digest": "Digest description"
+ }
+ ]
+ },
+ "markdown": {
+ "content": "您的会议室已经预定,稍后会同步到`邮箱`>**事项详情**>事 项:开会>组织者:@miglioguan>参与者:@miglioguan、@kunliu、@jamdeezhou、@kanexiong、@kisonwang>>会议室:广州TIT 1楼 301>日 期:2018年5月18日>时 间:上午9:00-11:00>>请准时参加会议。>>如需修改会议信息,请点击:[修改会议信息](https://work.weixin.qq.com)"
+ },
+ "miniprogram_notice": {
+ "appid": "wx123123123123123",
+ "page": "pages/index?userid=zhangsan&orderid=123123123",
+ "title": "会议室预订成功通知",
+ "description": "4月27日 16:16",
+ "emphasis_first_item": true,
+ "content_item": [
+ {
+ "key": "会议室",
+ "value": "402"
+ },
+ {
+ "key": "会议地点",
+ "value": "广州TIT-402会议室"
+ },
+ {
+ "key": "会议时间",
+ "value": "2018年8月1日 09:00-09:30"
+ },
+ {
+ "key": "参与人员",
+ "value": "周剑轩"
+ }
+ ]
+ },
+ "interactive_taskcard": {
+ "title": "赵明登的礼物申请",
+ "description": "礼品:A31茶具套装\n用途:赠与小黑科技张总经理",
+ "url": "URL",
+ "task_id": "taskid123",
+ "btn": [
+ {
+ "key": "key111",
+ "name": "批准",
+ "color": "red",
+ "is_bold": true
+ },
+ {
+ "key": "key222",
+ "name": "驳回"
+ }
+ ]
+ },
+ "safe": 0,
+ "enable_id_trans": 0,
+ "enable_duplicate_check": 0,
+ "duplicate_check_interval": 1800
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageSendResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageSendResponse.json
new file mode 100644
index 00000000..43ff2dbd
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageSendResponse.json
@@ -0,0 +1,7 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "invaliduser": "userid1|userid2",
+ "invalidparty": "1|2",
+ "invalidtag": "3|4"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageUpdateTaskCardRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageUpdateTaskCardRequest.json
new file mode 100644
index 00000000..f2da0198
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageUpdateTaskCardRequest.json
@@ -0,0 +1,6 @@
+{
+ "userids": [ "userid1", "userid2" ],
+ "agentid": 1,
+ "task_id": "taskid122",
+ "replace_name": "已收到"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageUpdateTaskCardResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageUpdateTaskCardResponse.json
new file mode 100644
index 00000000..b8d16b33
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessage/CgibinMessageUpdateTaskCardResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "invaliduser": [ "userid1", "userid2" ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckRoomAgreeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckRoomAgreeRequest.json
new file mode 100644
index 00000000..f25fc50c
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckRoomAgreeRequest.json
@@ -0,0 +1,3 @@
+{
+ "roomid": "wrjc7bDwAASxc8tZvBErFE02BtPWyAAA"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckRoomAgreeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckRoomAgreeResponse.json
new file mode 100644
index 00000000..56b7db3b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckRoomAgreeResponse.json
@@ -0,0 +1,21 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "agreeinfo": [
+ {
+ "status_change_time": 1562766651,
+ "exteranalopenid": "wmeDKaCQAAGdtHdiQWxVadfwV2HxNAAA",
+ "agree_status": "Agree"
+ },
+ {
+ "status_change_time": 1562766651,
+ "exteranalopenid": "wmeDKaCQAAIQ_p9ACyiopLBBJSGocAAA",
+ "agree_status": "Disagree"
+ },
+ {
+ "status_change_time": 1562766651,
+ "exteranalopenid": "wmeDKaCQAAIQ_p9ACnxacyBBJSGocAAA",
+ "agree_status": "Agree"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckSingleAgreeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckSingleAgreeRequest.json
new file mode 100644
index 00000000..edf80a72
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckSingleAgreeRequest.json
@@ -0,0 +1,16 @@
+{
+ "info": [
+ {
+ "userid": "XuJinSheng",
+ "exteranalopenid": "wmeDKaCQAAGd9oGiQWxVsAKwV2HxNAAA"
+ },
+ {
+ "userid": "XuJinSheng",
+ "exteranalopenid": "wmeDKaCQAAIQ_p7ACn_jpLVBJSGocAAA"
+ },
+ {
+ "userid": "XuJinSheng",
+ "exteranalopenid": "wmeDKaCQAAPE_p7ABnxkpLBBJSGocAAA"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckSingleAgreeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckSingleAgreeResponse.json
new file mode 100644
index 00000000..2db9a31e
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditCheckSingleAgreeResponse.json
@@ -0,0 +1,24 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "agreeinfo": [
+ {
+ "status_change_time": 1562766651,
+ "userid": "XuJinSheng",
+ "exteranalopenid": "wmeDKaCPAAGdvxciQWxVsAKwV2HxNAAA",
+ "agree_status": "Agree"
+ },
+ {
+ "status_change_time": 1562766651,
+ "userid": "XuJinSheng",
+ "exteranalopenid": "wmeDKaCQAAIQ_p7ACnxksfeBJSGocAAA",
+ "agree_status": "Disagree"
+ },
+ {
+ "status_change_time": 1562766651,
+ "userid": "XuJinSheng",
+ "exteranalopenid": "wmeDKaCwAAIQ_p7ACnxckLBBJSGocAAA",
+ "agree_status": "Agree"
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetPermitUserListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetPermitUserListRequest.json
new file mode 100644
index 00000000..b8681617
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetPermitUserListRequest.json
@@ -0,0 +1,3 @@
+{
+ "type": 1
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetPermitUserListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetPermitUserListResponse.json
new file mode 100644
index 00000000..03e4a800
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetPermitUserListResponse.json
@@ -0,0 +1,9 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "ids": [
+ "userid_111",
+ "userid_222",
+ "userid_333"
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetRobotInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetRobotInfoRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetRobotInfoRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetRobotInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetRobotInfoResponse.json
new file mode 100644
index 00000000..197c8b0b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGetRobotInfoResponse.json
@@ -0,0 +1,9 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "data": {
+ "robot_id": "wbxxxxxxxxxxxxxxxxxxxxxxxx",
+ "name": "机器人A",
+ "creator_userid": "zhangsan"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGroupChatGetRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGroupChatGetRequest.json
new file mode 100644
index 00000000..eea0f236
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGroupChatGetRequest.json
@@ -0,0 +1,3 @@
+{
+ "roomid": "wrNplhCgAAIVZohLe57zKnvIV7xBKrig"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGroupChatGetResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGroupChatGetResponse.json
new file mode 100644
index 00000000..b13eed36
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinMessageAudit/CgibinMessageAuditGroupChatGetResponse.json
@@ -0,0 +1,18 @@
+{
+ "roomname": "蓦然回首",
+ "creator": "ZhangWenChao",
+ "room_create_time": 1592361604,
+ "notice": "",
+ "members": [
+ {
+ "memberid": "ZhangWenChao",
+ "jointime": 1592361605
+ },
+ {
+ "memberid": "xujinsheng",
+ "jointime": 1592377076
+ }
+ ],
+ "errcode": 0,
+ "errmsg": "ok"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAdminListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAdminListRequest.json
new file mode 100644
index 00000000..2f9db1bf
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAdminListRequest.json
@@ -0,0 +1,4 @@
+{
+ "auth_corpid": "auth_corpid_value",
+ "agentid": 1000046
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAdminListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAdminListResponse.json
new file mode 100644
index 00000000..a103e3e8
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAdminListResponse.json
@@ -0,0 +1,16 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "admin": [
+ {
+ "userid": "zhangsan",
+ "open_userid": "xxxxx",
+ "auth_type": 1
+ },
+ {
+ "userid": "lisi",
+ "open_userid": "yyyyy",
+ "auth_type": 0
+ }
+ ]
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAuthInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAuthInfoRequest.json
new file mode 100644
index 00000000..e1781e32
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAuthInfoRequest.json
@@ -0,0 +1,4 @@
+{
+ "auth_corpid": "auth_corpid_value",
+ "permanent_code": "code_value"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAuthInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAuthInfoResponse.json
new file mode 100644
index 00000000..3c601b50
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetAuthInfoResponse.json
@@ -0,0 +1,57 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "dealer_corp_info": {
+ "corpid": "xxxx",
+ "corp_name": "name"
+ },
+ "auth_corp_info": {
+ "corpid": "xxxx",
+ "corp_name": "name",
+ "corp_type": "verified",
+ "corp_square_logo_url": "yyyyy",
+ "corp_user_max": 50,
+ "corp_agent_max": 30,
+ "corp_full_name": "full_name",
+ "verified_end_time": 1431775834,
+ "subject_type": 1,
+ "corp_wxqrcode": "zzzzz",
+ "corp_scale": "1-50人",
+ "corp_industry": "IT服务",
+ "corp_sub_industry": "计算机软件/硬件/信息服务",
+ "location": "广东省广州市"
+ },
+ "auth_info": {
+ "agent": [
+ {
+ "agentid": 1,
+ "name": "NAME",
+ "round_logo_url": "xxxxxx",
+ "square_logo_url": "yyyyyy",
+ "appid": 1,
+ "privilege": {
+ "level": 1,
+ "allow_party": [ 1, 2, 3 ],
+ "allow_user": [ "zhansan", "lisi" ],
+ "allow_tag": [ 1, 2, 3 ],
+ "extra_party": [ 4, 5, 6 ],
+ "extra_user": [ "wangwu" ],
+ "extra_tag": [ 4, 5, 6 ]
+ },
+ "shared_from": {
+ "corpid": "wwyyyyy"
+ }
+ },
+ {
+ "agentid": 2,
+ "name": "NAME2",
+ "round_logo_url": "xxxxxx",
+ "square_logo_url": "yyyyyy",
+ "appid": 5,
+ "shared_from": {
+ "corpid": "wwyyyyy"
+ }
+ }
+ ]
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetCorpTokenRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetCorpTokenRequest.json
new file mode 100644
index 00000000..e1781e32
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetCorpTokenRequest.json
@@ -0,0 +1,4 @@
+{
+ "auth_corpid": "auth_corpid_value",
+ "permanent_code": "code_value"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetCorpTokenResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetCorpTokenResponse.json
new file mode 100644
index 00000000..2d04e742
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetCorpTokenResponse.json
@@ -0,0 +1,6 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "access_token": "xxxxxx",
+ "expires_in": 7200
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetLoginInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetLoginInfoRequest.json
new file mode 100644
index 00000000..9e9d32a9
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetLoginInfoRequest.json
@@ -0,0 +1,3 @@
+{
+ "auth_code": "xxxxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetLoginInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetLoginInfoResponse.json
new file mode 100644
index 00000000..fc56ddbf
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetLoginInfoResponse.json
@@ -0,0 +1,36 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "usertype": 1,
+ "user_info": {
+ "userid": "xxxx",
+ "open_userid": "xxx",
+ "name": "xxxx",
+ "avatar": "xxxx"
+ },
+ "corp_info": {
+ "corpid": "wxCorpId"
+ },
+ "agent": [
+ {
+ "agentid": 0,
+ "auth_type": 1
+ },
+ {
+ "agentid": 1,
+ "auth_type": 1
+ },
+ {
+ "agentid": 2,
+ "auth_type": 1
+ }
+ ],
+ "auth_info": {
+ "department": [
+ {
+ "id": 2,
+ "writable": true
+ }
+ ]
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPermanentCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPermanentCodeRequest.json
new file mode 100644
index 00000000..e24fcf4b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPermanentCodeRequest.json
@@ -0,0 +1,3 @@
+{
+ "auth_code": "auth_code_value"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPermanentCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPermanentCodeResponse.json
new file mode 100644
index 00000000..7a63ce49
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPermanentCodeResponse.json
@@ -0,0 +1,72 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "access_token": "xxxxxx",
+ "expires_in": 7200,
+ "permanent_code": "xxxx",
+ "dealer_corp_info": {
+ "corpid": "xxxx",
+ "corp_name": "name"
+ },
+ "auth_corp_info": {
+ "corpid": "xxxx",
+ "corp_name": "name",
+ "corp_type": "verified",
+ "corp_square_logo_url": "yyyyy",
+ "corp_user_max": 50,
+ "corp_agent_max": 30,
+ "corp_full_name": "full_name",
+ "verified_end_time": 1431775834,
+ "subject_type": 1,
+ "corp_wxqrcode": "zzzzz",
+ "corp_scale": "1-50人",
+ "corp_industry": "IT服务",
+ "corp_sub_industry": "计算机软件/硬件/信息服务",
+ "location": "广东省广州市",
+ "auth_type": 1
+ },
+ "auth_info": {
+ "agent": [
+ {
+ "agentid": 1,
+ "name": "NAME",
+ "round_logo_url": "xxxxxx",
+ "square_logo_url": "yyyyyy",
+ "appid": 1,
+ "privilege": {
+ "level": 1,
+ "allow_party": [ 1, 2, 3 ],
+ "allow_user": [ "zhansan", "lisi" ],
+ "allow_tag": [ 1, 2, 3 ],
+ "extra_party": [ 4, 5, 6 ],
+ "extra_user": [ "wangwu" ],
+ "extra_tag": [ 4, 5, 6 ]
+ },
+ "shared_from": {
+ "corpid": "wwyyyyy"
+ }
+ },
+ {
+ "agentid": 2,
+ "name": "NAME2",
+ "round_logo_url": "xxxxxx",
+ "square_logo_url": "yyyyyy",
+ "appid": 5,
+ "shared_from": {
+ "corpid": "wwyyyyy"
+ }
+ }
+ ]
+ },
+ "auth_user_info": {
+ "userid": "aa",
+ "open_userid": "xxxxxx",
+ "name": "xxx",
+ "avatar": "http://xxx"
+ },
+ "register_code_info": {
+ "register_code": "1111",
+ "template_id": "tpl111",
+ "state": "state001"
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPreAuthCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPreAuthCodeRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPreAuthCodeRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPreAuthCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPreAuthCodeResponse.json
new file mode 100644
index 00000000..f0c4599a
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetPreAuthCodeResponse.json
@@ -0,0 +1,6 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "pre_auth_code": "Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw",
+ "expires_in": 1200
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetProviderTokenRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetProviderTokenRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetProviderTokenRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetProviderTokenResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetProviderTokenResponse.json
new file mode 100644
index 00000000..6155cd02
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceGetProviderTokenResponse.json
@@ -0,0 +1,4 @@
+{
+ "provider_access_token": "enLSZ5xxxxxxJRL",
+ "expires_in": 7200
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceSetSessionInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceSetSessionInfoRequest.json
new file mode 100644
index 00000000..10650cea
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceSetSessionInfoRequest.json
@@ -0,0 +1,7 @@
+{
+ "pre_auth_code": "xxxxx",
+ "session_info": {
+ "appid": [ 1, 2, 3 ],
+ "auth_type": 1
+ }
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceSetSessionInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceSetSessionInfoResponse.json
new file mode 100644
index 00000000..4dfc6cba
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceSetSessionInfoResponse.json
@@ -0,0 +1,4 @@
+{
+ "errcode": 0,
+ "errmsg": "ok"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserDetail3rdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserDetail3rdRequest.json
new file mode 100644
index 00000000..9ef7cc2e
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserDetail3rdRequest.json
@@ -0,0 +1,3 @@
+{
+ "user_ticket": "USER_TICKET"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserDetail3rdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserDetail3rdResponse.json
new file mode 100644
index 00000000..5a8a297f
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserDetail3rdResponse.json
@@ -0,0 +1,10 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "corpid": "wwxxxxxxyyyyy",
+ "userid": "lisi",
+ "name": "李四",
+ "gender": "1",
+ "avatar": "http://shp.qpic.cn/bizmp/xxxxxxxxxxx/0",
+ "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=vcfc13b01dfs78e981c"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserInfo3rdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserInfo3rdRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserInfo3rdRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserInfo3rdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserInfo3rdResponse.json
new file mode 100644
index 00000000..88eda716
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/CgibinServiceUserInfo3rdResponse.json
@@ -0,0 +1,11 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "CorpId": "CORPID",
+ "UserId": "USERID",
+ "OpenId": "OPENID",
+ "DeviceId": "DEVICEID",
+ "user_ticket": "USER_TICKET",
+ "expires_in": 7200,
+ "open_userid": "wwxxxx"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterCodeRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterCodeRequest.json
new file mode 100644
index 00000000..b99ac19d
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterCodeRequest.json
@@ -0,0 +1,8 @@
+{
+ "template_id": "TEMPLATEID",
+ "corp_name": "腾讯科技",
+ "admin_name": "张三",
+ "admin_mobile": "12345678901",
+ "state": "TestState123",
+ "follow_user": "lisi"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterCodeResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterCodeResponse.json
new file mode 100644
index 00000000..90d6cc85
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterCodeResponse.json
@@ -0,0 +1,6 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "register_code": "pIKi3wRPNWCGF-pyP-YU5KWjDDD",
+ "expires_in": 600
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterInfoRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterInfoRequest.json
new file mode 100644
index 00000000..cae6e3d2
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterInfoRequest.json
@@ -0,0 +1,3 @@
+{
+ "register_code": "pIKi3wRPNWCGF-pyP-YU5KWjDDD"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterInfoResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterInfoResponse.json
new file mode 100644
index 00000000..1d12919f
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinService/Register/CgibinServiceGetRegisterInfoResponse.json
@@ -0,0 +1,14 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "corpid": "wwddddccc7775555aaa",
+ "contact_sync": {
+ "access_token": "accesstoken000001",
+ "expires_in": 1800
+ },
+ "auth_user_info": {
+ "userid": "zhangshan"
+ },
+ "state": "TestState123",
+ "template_id": "tpltest"
+}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSync/CgibinSyncContactSyncSuccessRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSync/CgibinSyncContactSyncSuccessRequest.json
new file mode 100644
index 00000000..22fdca1b
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSync/CgibinSyncContactSyncSuccessRequest.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSync/CgibinSyncContactSyncSuccessResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSync/CgibinSyncContactSyncSuccessResponse.json
new file mode 100644
index 00000000..4dfc6cba
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinSync/CgibinSyncContactSyncSuccessResponse.json
@@ -0,0 +1,4 @@
+{
+ "errcode": 0,
+ "errmsg": "ok"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinUser/CgibinUserGetUserIdRequest.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinUser/CgibinUserGetUserIdRequest.json
new file mode 100644
index 00000000..406693a8
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinUser/CgibinUserGetUserIdRequest.json
@@ -0,0 +1,3 @@
+{
+ "mobile": "13430388888"
+}
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinUser/CgibinUserGetUserIdResponse.json b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinUser/CgibinUserGetUserIdResponse.json
new file mode 100644
index 00000000..1aef4103
--- /dev/null
+++ b/test/SKIT.FlurlHttpClient.Wechat.Work.UnitTests/ModelSamples/CgibinUser/CgibinUserGetUserIdResponse.json
@@ -0,0 +1,5 @@
+{
+ "errcode": 0,
+ "errmsg": "ok",
+ "userid": "zhangsan"
+}