怎么在微信公眾號中開發(fā)一個客服接口-創(chuàng)新互聯(lián)

怎么在微信公眾號中開發(fā)一個客服接口?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站于2013年成立,先為增城等服務(wù)建站,增城等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為增城企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Kf_account.cs代碼:


 public partial class Kf_account : Form
  {
    private readonly DataTable adt_user = new DataTable();
    private readonly string as_INIFile = Application.StartupPath + "\\user.ini";
 
    public Kf_account()
    {
      BindUser();
    }
 
    private void BindUser()
    {
      if (!File.Exists(as_INIFile))
      {
        var str = new StringBuilder();
        str.Append(";內(nèi)容由程序自動生成,請不要修改此文件內(nèi)容\r\n");
        str.Append("[total]\r\n");
        str.Append("total=\r\n");
        str.Append("[count]\r\n");
        str.Append("count=\r\n");
        str.Append("[user]\r\n");
        //StreamWriter sw = default(StreamWriter);
        //sw = File.CreateText(ls_INIFile);
        //sw.WriteLine(str.ToString());
        //sw.Close();
        File.WriteAllText(as_INIFile, str.ToString(), Encoding.Unicode);
        File.SetAttributes(as_INIFile, FileAttributes.Hidden);
      }
      CheckForIllegalCrossThreadCalls = false;
      InitializeComponent();
      Icon = Resource1.ico;
      lkl_num.Text = INIFile.ContentValue("total", "total", as_INIFile);
      lkl_num_c.Text = INIFile.ContentValue("count", "count", as_INIFile);
      pictureBox1.Visible = true;
      var sr = new StreamReader(as_INIFile, Encoding.Unicode);
      String line;
      int li_count = 0;
      adt_user.Columns.Clear();
      adt_user.Columns.Add("username", Type.GetType("System.String"));
      adt_user.Columns.Add("openid", Type.GetType("System.String"));
      while ((line = sr.ReadLine()) != null)
      {
        li_count++;
        if (li_count > 6)
        {
          line = SysVisitor.Current.GetFormatStr(line);
          DataRow newRow;
          newRow = adt_user.NewRow();
          newRow["username"] = line.Substring(0, line.LastIndexOf('='));
          newRow["openid"] = line.Substring(line.LastIndexOf('=') + 1);
          adt_user.Rows.Add(newRow);
        }
      }
      sr.Close();
      dataGridView1.AutoGenerateColumns = false;
      dataGridView1.DataSource = adt_user;
      //dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCells;
      lbl_count.Text = "共" + (li_count - 6) + "行";
      pictureBox1.Visible = false;
    }
 
    private void btn_GetUser_Click(object sender, EventArgs e)
    {
      if (MessageBox.Show(@"拉取用戶信息的速度取決于你的關(guān)注數(shù)與網(wǎng)絡(luò)速度,
可能需要幾分鐘甚至更長時間。
使用此功能將消耗大量用戶管理接口配額。
要繼續(xù)此操作嗎?",
        "提示:", MessageBoxButtons.YesNo) == DialogResult.No)
      {
        return;
      }
      var thr = new Thread(Get_user_list);
      thr.Start();
    }
 
    private void Get_user_list()
    {
      File.Delete(as_INIFile);
      var str = new StringBuilder();
      str.Append(";內(nèi)容由程序自動生成,請不要修改此文件內(nèi)容\r\n");
      str.Append("[total]\r\n");
      str.Append("total=\r\n");
      str.Append("[count]\r\n");
      str.Append("count=\r\n");
      str.Append("[user]\r\n");
      File.WriteAllText(as_INIFile, str.ToString(), Encoding.Unicode);
      File.SetAttributes(as_INIFile, FileAttributes.Hidden);
 
      string ls_appid = INIFile.ContentValue("weixin", "Appid");
      string ls_secret = INIFile.ContentValue("weixin", "AppSecret");
      string access_token = "";
      string menu = "";
      if (ls_appid.Length != 18 || ls_secret.Length != 32)
      {
        MessageBox.Show("你的Appid或AppSecret不對,請檢查后再操作");
        return;
      }
      access_token = SysVisitor.Current.Get_Access_token(ls_appid, ls_secret);
      if (access_token == "")
      {
        MessageBox.Show("Appid或AppSecret不對,請檢查后再操作");
        return;
      }
      menu = SysVisitor.Current.GetPageInfo("/tupian/20230522/get& + access_token);
      if (menu.Substring(2, 7) == "errcode")
      {
        MessageBox.Show("拉取失敗,返回消息:\r\n" + menu);
      }
 
      JObject json = JObject.Parse(menu);
      lkl_num.Text = json["total"].ToString();
      INIFile.SetINIString("total", "total", lkl_num.Text, as_INIFile);
      lkl_num_c.Text = json["count"].ToString();
      INIFile.SetINIString("count", "count", lkl_num_c.Text, as_INIFile);
      int li_count = int.Parse(json["count"].ToString());
      btn_GetUser.Enabled = false;
      pictureBox1.Visible = true;
      FileStream fs = null;
      Encoding encoder = Encoding.Unicode;
      for (int i = 0; i < li_count; i++)
      {
        string openid, username;
        openid = Get_UserName(json["data"]["openid"][i].ToString());
        username = json["data"]["openid"][i].ToString();
        //INIFile.SetINIString("user", openid, username, as_INIFile);
        byte[] bytes = encoder.GetBytes(openid + "=" + username + " \r\n");
        fs = File.OpenWrite(as_INIFile);
        //設(shè)定書寫的開始位置為文件的末尾 
        fs.Position = fs.Length;
        //將待寫入內(nèi)容追加到文件末尾 
        fs.Write(bytes, 0, bytes.Length);
        fs.Close();
        lab_nums.Text = "已拉取" + i + "個,還剩" + (li_count - i) + "個,請耐心等待";
      }
      lab_nums.Text = "";
      //BindUser();
      btn_GetUser.Enabled = true;
      pictureBox1.Visible = false;
      MessageBox.Show("已全部拉取完畢,請重新打開該窗口");
    }
 
    /// <summary>
    ///   獲取用戶信息詳情,返回json
    /// </summary>
    ///<param name="as_openid">
    private string Get_User(string as_openid)
    {
      string ls_json = "";
      string access_token = "";
      access_token = SysVisitor.Current.Get_Access_token();
      ls_json =
        SysVisitor.Current.GetPageInfo("/tupian/20230522/info& + access_token + "&openid=" + as_openid + "&lang=zh_CN");
      return ls_json;
    }
 
    /// <summary>
    ///   獲取用戶用戶的昵稱
    /// </summary>
    private string Get_UserName(string as_openid)
    {
      string ls_json = "";
      ls_json = Get_User(as_openid);
      string username = "";
      JObject json = JObject.Parse(ls_json);
      username = json["nickname"].ToString();
      username = SysVisitor.Current.GetFormatStr(username);
      return username;
    }
 
    private void btn_search_Click(object sender, EventArgs e)
    {
      string username = txt_search.Text.Trim();
      if (string.IsNullOrWhiteSpace(username))
      {
        return;
      }
      DataRow[] datarows = adt_user.Select("username like '%" + username + "%'");
 
      var ldt = new DataTable();
      ldt.Columns.Clear();
      ldt.Columns.Add("username", Type.GetType("System.String"));
      ldt.Columns.Add("openid", Type.GetType("System.String"));
      ldt = ToDataTable(datarows);
      try
      {
        lbl_count.Text = ldt.Rows.Count.ToString();
      }
      catch
      {
      }
      dataGridView1.AutoGenerateColumns = false;
      dataGridView1.DataSource = ldt;
    }
 
    public DataTable ToDataTable(DataRow[] rows)
    {
      if (rows == null || rows.Length == 0) return null;
      DataTable tmp = rows[0].Table.Clone(); // 復(fù)制DataRow的表結(jié)構(gòu) 
      foreach (DataRow row in rows)
        tmp.Rows.Add(row.ItemArray); // 將DataRow添加到DataTable中 
      return tmp;
    }
 
    private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
      try
      {
        SysVisitor.Current.Wx_openid =
          dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();
        SysVisitor.Current.Wx_username =
          dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value.ToString();
        //MessageBox.Show(str);
        grb_chat.Enabled = true;
        grb_chat.Text = SysVisitor.Current.Wx_username;
      }
      catch
      {
 
      }
      webBrowser_msg.DocumentText = "";
      string url = string.Format("/tupian/20230522/getrecord&
        SysVisitor.Current.Get_Access_token());
      string ls_text = @"{";
      ls_text += "\"starttime\" : " + DateTime.Now.AddDays(-3).Ticks + ",";
      ls_text += "\"endtime\" : " + DateTime.Now.Ticks + ",";
      ls_text += "\"openid\" : \"" + SysVisitor.Current.Wx_openid + "\",";
      ls_text += "\"pagesize\" : 1000,";
      ls_text += "\"pageindex\" : 1,";
      ls_text += "}";
      string ls_history = SysVisitor.Current.PostPage(url, ls_text);
      webBrowser_msg.DocumentText = ls_history;
    }
 
    private void btn_send_Click(object sender, EventArgs e)
    {
      string ls_msg = richTextBox_msg.Text;
      string ls_text = @"{";
      ls_text += "\"touser\":\"" + SysVisitor.Current.Wx_openid + "\",";
      ls_text += "\"msgtype\":\"text\",";
      ls_text += "\"text\":";
      ls_text += "{";
      ls_text += "\"content\":\"" + ls_msg + "\"";
      ls_text += "}";
      ls_text += "}";
      string url = string.Format("/tupian/20230522/send&
        SysVisitor.Current.Get_Access_token());
      string ls_isright = SysVisitor.Current.PostPage(url, ls_text);
 
      webBrowser_msg.DocumentText += "
" + ls_isright + "

"; } private void btn_addkf_Click(object sender, EventArgs e) { string url = string.Format("/tupian/20230522/add& SysVisitor.Current.Get_Access_token()); //客服賬號 設(shè)置 xxx@你的公眾號 這樣的格式才是正確的喲。 string ls_text = "{"; ls_text += "\"kf_account\":test2@gz-sisosoft,"; ls_text += "\"nickname\":\"客服2\","; ls_text += "\"password\":\"12345\","; ls_text += "}"; string ls_kf = @"{ 'kf_account' : 'test1@gz-sisosoft', 'nickname' : '客服1', 'password' : '123456', }"; string ls_isok = SysVisitor.Current.PostPage(url, ls_text); MessageBox.Show(ls_isok); } private void Kf_account_Load(object sender, EventArgs e) { } }

分享標(biāo)題:怎么在微信公眾號中開發(fā)一個客服接口-創(chuàng)新互聯(lián)
文章源于:http://muchs.cn/article20/hipco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)網(wǎng)站收錄、網(wǎng)頁設(shè)計公司、面包屑導(dǎo)航、服務(wù)器托管、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)