Maison  >  Article  >  Applet WeChat  >  Développement C# du portail WeChat et configuration de l'application et utilisation du compte d'entreprise WeChat

Développement C# du portail WeChat et configuration de l'application et utilisation du compte d'entreprise WeChat

高洛峰
高洛峰original
2017-03-02 09:50:591607parcourir

Au début de cette série d'essais, il présente principalement le développement d'applications de portail pour les comptes publics WeChat. Récemment, l'ensemble du cadre WeChat a été étendu et complété, et la dernière encapsulation d'API et le développement de comptes d'entreprise ont été ajoutés. .La suite présente principalement comment utiliser C#. Quant au développement du compte WeChat Enterprise, cet article sert de point de départ au développement du compte WeChat Enterprise et présente la configuration et l'utilisation du compte WeChat Enterprise.

1. Enregistrement et connexion du compte d'entreprise WeChat

Le compte d'entreprise est un autre type de WeChat après le compte public et le compte d'abonnement. Il est principalement destiné aux entreprises. Enterprise Account est le portail d'applications mobiles fourni par WeChat pour les entreprises clientes. Il peut aider les entreprises à établir des connexions entre les employés, les chaînes d'approvisionnement en amont et en aval et les systèmes informatiques de l'entreprise. Grâce au compte Entreprise, les entreprises ou les partenaires tiers peuvent aider les entreprises à mettre en œuvre rapidement et à moindre coût des applications mobiles légères de haute qualité pour réaliser la mobilisation de la production, de la gestion, de la collaboration et des opérations.

Personnellement, je pense que le plus grand point fort du compte d'entreprise est que vous pouvez envoyer un nombre illimité de messages, ce qui signifie que vous pouvez communiquer facilement entre les employés de l'entreprise. Par rapport aux comptes publics et aux comptes d'abonnement, les comptes d'entreprise WeChat sont plus prudents dans l'envoi de messages. Cependant, le compte d'entreprise WeChat doit établir un carnet d'adresses interne. Les abonnés doivent faire correspondre l'identifiant WeChat, l'adresse e-mail et le numéro de téléphone du carnet d'adresses avant de pouvoir le suivre. Cela signifie que cela peut empêcher d'autres personnes extérieures de le suivre librement. De plus, pour des raisons de sécurité, vous pouvez également configurer une vérification en deux étapes, qui est un processus d'audit.

La certification des comptes d'entreprise est la même que celle des comptes publics. Les documents de qualification d'entreprise pertinents doivent être fournis et des frais de certification sont facturés chaque année. Sinon, il peut y avoir certaines restrictions sur le personnel et les fonctions. Je pense que WeChat cherche vraiment des moyens de gagner de l'argent. Les modèles de facturation actuels incluent les comptes d'abonnement, les comptes publics, les comptes d'entreprise et les plateformes ouvertes. Il semble qu'ils aient tous des frais de certification, et les magasins WeChat doivent également collecter un dépôt. 20 000, tout est de l'argent.

D'accord, pas grand chose d'autre à dire. L'adresse d'enregistrement de WeChat est : https://qy.weixin.qq.com Vous ne pouvez pas enregistrer un compte officiel WeChat et un compte d'entreprise WeChat en même temps. une adresse e-mail.

Pour que les entreprises puissent ouvrir un compte d'entreprise et commencer à l'utiliser, quatre étapes sont requises

1) Les entreprises se rendent sur le site officiel de WeChat ( http://qy.weixin.qq.com ) pour demander l'activation ;

2) Après l'activation, l'entreprise importe les membres dans l'arrière-plan de gestion du compte d'entreprise et publie les codes QR

3) L'entreprise appelle l'API du compte d'entreprise pour s'interfacer avec ; le propre système de développement de l'entreprise ;

4) Les employés suivent, reçoivent des informations WeChat et interagissent avec l'entreprise dans WeChat

Après avoir enregistré le compte de l'entreprise, vous pouvez scanner le code QR de l'entreprise via WeChat. pour vous connecter. Lors de la numérisation, WeChat doit confirmer. Ce n'est qu'alors que vous pourrez continuer à saisir le mot de passe pour vous connecter. L'interface de fonctionnement est la suivante (la gauche est une capture d'écran du téléphone mobile et la droite est une capture d'écran). de la page Internet).

C#开发微信门户及应用微信企业号的配置和使用 C#开发微信门户及应用微信企业号的配置和使用

Après la connexion, nous pouvons voir l'interface de gestion de l'ordinateur correspondante.

C#开发微信门户及应用微信企业号的配置和使用

2. Définissez le mode de rappel de développement

Si vous avez développé un compte public WeChat, alors nous savons que si vous devez établir une connexion entre le Relation de connexion entre le serveur WeChat et le serveur de site Web, pour réaliser le transfert et le traitement des messages, un mode de rappel doit être défini et les paramètres pertinents doivent être configurés. Créez ensuite une entrée sur votre propre serveur de site Web pour traiter les messages du serveur WeChat.

C#开发微信门户及应用微信企业号的配置和使用

Après avoir entré la configuration, nous devons modifier les paramètres pertinents tels que l'URL, le jeton, l'encodageAESKey, etc., principalement l'URL. C'est la même chose que le traitement d'entrée. du compte officiel, et nous devons publier l'entrée de traitement sur le serveur du site Web.

Le jeton et l'AESKey peuvent être générés dynamiquement selon les invites. L'AESKey semble être de 23 bits, elle est donc généralement générée par elle-même. Elle est principalement utilisée pour le cryptage et le déchiffrement.

Explication de trois paramètres : URL, Token et EncodingAESKey.

1) L'URL est le protocole d'accès et l'adresse utilisés par les applications d'entreprise pour recevoir les demandes push des comptes d'entreprise et prend en charge les protocoles http ou https.

2) Le jeton peut être rempli par l'entreprise et utilisé pour générer des signatures.

3) EncodingAESKey est utilisé pour chiffrer le corps du message et est le codage Base64 de la clé AES.

Pour le traitement détaillé de la vérification de l'URL, du jeton et du cryptage, veuillez vous référer à la section suivante « Traitement de cryptage et de déchiffrement lors de la réception de messages ».

C#开发微信门户及应用微信企业号的配置和使用

L'interface après avoir configuré le compte d'entreprise de mon entreprise est la suivante.

C#开发微信门户及应用微信企业号的配置和使用

La fonction de page pointée dans cette URL doit analyser les données et les renvoyer au serveur WeChat, nous devons donc pré-déployer cette entrée de fonction de traitement sur le serveur .

En plus des fonctions ci-dessus, il existe également un paramètre CorpID qui doit être utilisé, que nous pouvons visualiser dans l'interface principale en arrière-plan - Paramètres.

C#开发微信门户及应用微信企业号的配置和使用

Ensuite, afin de faciliter l'utilisation du backend du site Web, nous avons la même configuration que le compte officiel et la mettons dans Web.Config, comme indiqué ci-dessous.

C#开发微信门户及应用微信企业号的配置和使用

3. Implémenter le développement des fonctions de la page de rappel

Plusieurs éléments de configuration ont été introduits précédemment, qui doivent être utilisés dans cette section. continue de présenter comment implémenter la publication des informations du compte d'entreprise et lui faire réussir l'opération de test de rappel.

Étant donné que les données du test de rappel sont envoyées via la méthode Get, notre code logique de traitement est le suivant, qui est similaire au traitement du compte public, mais la partie implémentation est différente.

    /// <summary>
    /// 企业号回调信息接口。统一接收并处理信息的入口。    /// </summary>
    public class corpapi : IHttpHandler
    {        /// <summary>
        /// 处理企业号的信息        /// </summary>
        /// <param name="context"></param>
        public void ProcessRequest(HttpContext context)
        {            string postString = string.Empty;            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
            {                using (Stream stream = HttpContext.Current.Request.InputStream)
                {
                    Byte[] postBytes = new Byte[stream.Length];
                    stream.Read(postBytes, 0, (Int32)stream.Length);
                    postString = Encoding.UTF8.GetString(postBytes);
                }                if (!string.IsNullOrEmpty(postString))
                {
                    Execute(postString);
                }
            }            else
            {                Auth();
            }
        }        /// <summary>
        /// 成为开发者的第一步,验证并相应服务器的数据        /// </summary>
        private void Auth()
        {            #region 获取关键参数            string token = ConfigurationManager.AppSettings["CorpToken"];//从配置文件获取Token
            if (string.IsNullOrEmpty(token))
            {
                LogTextHelper.Error(string.Format("CorpToken 配置项没有配置!"));
            }            string encodingAESKey = ConfigurationManager.AppSettings["EncodingAESKey"];//从配置文件获取EncodingAESKey
            if (string.IsNullOrEmpty(encodingAESKey))
            {
                LogTextHelper.Error(string.Format("EncodingAESKey 配置项没有配置!"));
            }            string corpId = ConfigurationManager.AppSettings["CorpId"];//从配置文件获取corpId
            if (string.IsNullOrEmpty(corpId))
            {
                LogTextHelper.Error(string.Format("CorpId 配置项没有配置!"));
            } 
            #endregion

            string echoString = HttpContext.Current.Request.QueryString["echoStr"];            
            string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
            string timestamp = HttpContext.Current.Request.QueryString["timestamp"];            
            string nonce = HttpContext.Current.Request.QueryString["nonce"];            
            string decryptEchoString = "";            
            if (new CorpBasicApi().CheckSignature(token, signature, timestamp, nonce, corpId, encodingAESKey, echoString, ref decryptEchoString))
            {                if (!string.IsNullOrEmpty(decryptEchoString))
                {
                    HttpContext.Current.Response.Write(decryptEchoString);
                    HttpContext.Current.Response.End();
                }
            }
        }

Le code de traitement spécifique est le suivant. L'une des classes de traitement de cryptage et de décryptage est fournie dans l'annexe du compte WeChat Enterprise que j'ai utilisé. Version C# du SDK.

    /// <summary>
    /// 企业号基础操作API实现    /// </summary>
    public class CorpBasicApi : ICorpBasicApi
    {        /// <summary>
        /// 验证企业号签名        /// </summary>
        /// <param name="token">企业号配置的Token</param>
        /// <param name="signature">签名内容</param>
        /// <param name="timestamp">时间戳</param>
        /// <param name="nonce">nonce参数</param>
        /// <param name="corpId">企业号ID标识</param>
        /// <param name="encodingAESKey">加密键</param>
        /// <param name="echostr">内容字符串</param>
        /// <param name="retEchostr">返回的字符串</param>
        /// <returns></returns>
        public bool CheckSignature(string token, string signature, string timestamp, string nonce, string corpId, string encodingAESKey, string echostr, ref string retEchostr)
        {
            WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId);            
            int result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref retEchostr);            
            if (result != 0)
            {
                LogTextHelper.Error("ERR: VerifyURL fail, ret: " + result);                
                return false;
            }            
            return true;            
            //ret==0表示验证成功,retEchostr参数表示明文,用户需要将retEchostr作为get请求的返回参数,返回给企业号。            
            // HttpUtils.SetResponse(retEchostr);
        }

Pour plus de développement C# du portail WeChat et d'application de configuration et d'utilisation du compte d'entreprise WeChat, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn