- 请求说明
Https请求方式: POST
1、创建部门
https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN
请求包结构体为:
{ "name": "广州研发中心", "parentid": 1, "order": 1, "id": 1 } 返回结果{ "errcode": 0, "errmsg": "created", "id": 2 }
/// <summary>
/// 创建部门
/// </summary>
/// <param name="name">部门名称</param>
/// <param name="parentid">父级id</param>
/// <param name="order">排序</param>
/// <param name="id">id</param>
/// <returns></returns>
public JObject CreatDepart(string name, int parentid, int order,int id )
{
string access_token = Utils.GetCookie("ticket", "access_token");
if (string.IsNullOrEmpty(access_token))
{
access_token= GetAccessToken();
}
Asms.B2C.BaseRequest<SearchTicketResponse> requet = new Asms.B2C.BaseRequest<SearchTicketResponse>();
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token={0}&name={1}&parentid={2}&order={3}&id={4}", access_token, name, parentid, order, id);
JObject result = requet.SendRequestJson(url);
return result;
}
错误:{ "errcode": 60001, "errmsg": "department invalid length" }
因为我传参数的方式错误,造成了上面的错误,官方文档说需要用json格式传输参数。于是我改成了下面的方式
public static JObject CreatDepart(string name, int parentid, int order, int id)
{
string access_token ="" ;
if (HttpContext.Current.Session[DTKeys.COOKIE_ACCESS_TOKEN] == null)
{
access_token = GetAccessToken();
}
else
{
access_token = HttpContext.Current.Session[DTKeys.COOKIE_ACCESS_TOKEN].ToString();
}
Depart depart = new Depart();
depart.name = name;
depart.parentid = parentid;
depart.order = order;
depart.id = id;
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token={0}", access_token);
var departStr = JsonConvert.SerializeObject(depart).ToString();
JObject result = HttpWebResponseUtility.HttpPostJson(url, departStr);
return result;
}
然后又出现了下面的错误{ "errcode": 60011, "errmsg": "no privilege to access/modify contact/party/agent "},去官方查看了一下,说是我的管理组
权限问题,所以我去管理后台改了一下权限,然后就可以了,反馈了下面的结果,添加成功{{ "errcode": 0, "errmsg": "created",
修改部门信息
/// <summary>
/// 更新部门
/// </summary>
/// <param name="name">部门名称</param>
/// <param name="parentid">父级id</param>
/// <param name="order">排序</param>
/// <param name="id">id</param>
/// <returns></returns>
public static JObject UpdateDepart(string name, int parentid, int order, int id)
{
string access_token = Utils.GetCookie("ticket", "access_token");
if (string.IsNullOrEmpty(access_token))
{
access_token = GetAccessToken();
}
Depart depart = new Depart();
depart.name = name;
depart.parentid = parentid;
depart.order = order;
depart.id = id;
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/update?access_token={0}", access_token);
var departStr = JsonConvert.SerializeObject(depart).ToString();
JObject result = HttpWebResponseUtility.HttpPostJson(url, departStr);
return result;
}
删除部门信息
/// <summary>
/// 删除部门,一次多条
/// </summary>
/// <param name="id">id</param>
/// <returns></returns>
public static int DeleteDepart(int id)
{
string access_token = "";
if (HttpContext.Current.Session[DTKeys.COOKIE_ACCESS_TOKEN] == null)
{
access_token = GetAccessToken();
}
else
{
access_token = HttpContext.Current.Session[DTKeys.COOKIE_ACCESS_TOKEN].ToString();
}
string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/delete?access_token={0}&id={1}", access_token, id);
JObject result = HttpWebResponseUtility.GetHttpResponse(url, 20000);
int sucCount = 0;
if (Convert.ToInt32(result["errcode"]) == 0)
sucCount++;
return sucCount;
}