• 微信开发第一步—接入指南


    一、开发前的准备

    1.要有一个公网的地址空间(Azure,阿里云....)
    2.自己定义一个Token(自己定义一个字符串就行,后面写代码时候也会用到)
     
     
    3.信息在客户端,微信服务器,网站之间的处理过程
     
     

    二、验证服务器地址的有效性

    开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数:

    参数描述
    signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
    timestamp 时间戳
    nonce 随机数
    echostr 随机字符串


    开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

    三、进行编码(我这里采用的是ASP.NET MVC的架构)

    1.创建一个MVC的空工程

    2.创建一个微信使用的Controller

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 using System.Web.Security;
     7 namespace MvcWeiXin.Controllers
     8 {
     9     public class WeChatController : Controller
    10     {
    11         public const string TOKEN = "*********";
    12         //
    13         // GET: /WeChat/
    14         [HttpGet]
    15         public string Index(string signature, string timestamp, string nonce, string echoStr)
    16         {
    17             if (checkSignature(signature, timestamp, nonce))
    18             {
    19                 return echoStr;
    20             }
    21             return string.Empty;
    22         }
    23         /// <summary>
    24         /// 加密/校验流程如下:
    25         ///1. 将token、timestamp、nonce三个参数进行字典序排序
    26         ///2. 将三个参数字符串拼接成一个字符串进行sha1加密
    27         ///3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
    28         /// </summary>
    29         /// <param name="signature"></param>
    30         /// <param name="timestamp"></param>
    31         /// <param name="nonce"></param>
    32         /// <returns></returns>
    33         private bool checkSignature(string signature, string timestamp, string nonce)
    34         {
    35             string[] checkArray = { TOKEN, timestamp, nonce };
    36             //进行字典排序
    37             Array.Sort(checkArray);
    38             //将数组内的项进行串联
    39             string resultTempStr = string.Join("", checkArray);
    40             //将字符串进行SHA1加密
    41             string resultStr = FormsAuthentication.HashPasswordForStoringInConfigFile(resultTempStr, "SHA1");
    42             if (resultStr.ToLower() == signature)
    43             {
    44                 return true;
    45             }
    46             return false;
    47         }
    48     }
    49 }
    四、将项目发布到虚拟主机里面

     1.关于网络主机的选择

    这里我使用了万网的免费虚拟主机,简单申请请看下面的图片,具体申请的步骤就不赘述了。

     
     

    2.发布项目

    这里我采用了先在本地生成文件的方式,然后再上传。

    发布成功后,桌面就会出现生成后的文件,然后采用FTP的方式上传到网络空间就行了

    这里我遇到了一个问题,就是我在上传到万网的时候,出现了以下的信息:

    是什么原因导致的我还不清楚,解决办法如下,在你的工程中运行"程序包管理控制台",执行 Update-Package Microsoft.AspNet.WebApi -reinstall

     

    然后重新发布一下,然后上传到虚拟主机

    3.测试一下是否成功

    如果下图点击“提交”成功的话,证明整个过程就已经通了

     
  • 相关阅读:
    cookie操作
    css加载动画...
    三目运算符的运用
    遍历对象长度
    2年
    相亲

    股市周期
    功利心
    思考笔记
  • 原文地址:https://www.cnblogs.com/dcz2015/p/4659951.html
Copyright © 2020-2023  润新知