基于Senparc开发微信公众号

  • 2019 年 12 月 4 日
  • 笔记

帮朋友做一套微信公众号/企业号下的用户积分,分享追踪的服务,初次使用Senparc,记录使用笔记和开发过程。

公众号信息确认/服务器关联

公众号

公众号注册,开通,验证,进入开发选项,完成相关配置,此处略过。

服务器关联

这里采用了 Senparc 框架来进行快速开发。

验证服务器

Nuget 安装 Senparc SDK ,这里采用 .NET Core MVC WEB API 来开发。

namespace WX_H5_ShareCount_Backend.Controllers  {      [Route("api/[controller]")]      [ApiController]      public class WeiXInController : ControllerBase      {          public readonly string Token = "raphaelli";            public ActionResult Get(string signature, string timestamp, string nonce,string echostr)          {              if (CheckSignature.Check(signature, timestamp, nonce, Token))              {                  return Content(echostr); //返回随机字符串则表示验证通过              }              else              {                  return Content("failed:" + signature + "," + Senparc.Weixin.MP.CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。");              }          }        }  }

运行,打开浏览器,访问对应API,成功!

部署方面,这里采用了 Auzre 的直接部署,当然也可以采用其它的部署方式。

Senparc SDK MP

配置

ConfigureServices

在 ConfigureServices() 方法中加入:

public void ConfigureServices(IServiceCollection services)  {      //...      services.AddSenparcGlobalServices(Configuration)//Senparc.CO2NET 全局注册              .AddSenparcWeixinServices(Configuration);//Senparc.Weixin 注册  }

Configure

修改 Configure() 方法传入参数,并添加代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> senparcWeixinSetting)  {      //app.UseMvc()等设置...        // 启动 CO2NET 全局注册,必须!      IRegisterService register = RegisterService.Start(env, senparcSetting.Value)                                                  .UseSenparcGlobal(false, null);        //开始注册微信信息,必须!      register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value)  }

appsetting.json

在 appsetting.json 文件下插入以下设置(可参考 Demo):

//以下信息会被自动识别,如无特殊说明,不用的参数可以删除,但修改 key 后将会无法自动识别!    //CO2NET 设置  "SenparcSetting": {    //以下为 CO2NET 的 SenparcSetting 全局配置,请勿修改 key,勿删除任何项      "IsDebug": true,    "DefaultCacheNamespace": "DefaultCache",    //分布式缓存    "Cache_Redis_Configuration": "Redis配置",    //"Cache_Redis_Configuration": "localhost:6379",    "Cache_Memcached_Configuration": "Memcached配置",    "SenparcUnionAgentKey": "SenparcUnionAgentKey"  },  //Senparc.Weixin SDK 设置  "SenparcWeixinSetting": {    //以下为 Senparc.Weixin 的 SenparcWeixinSetting 微信配置      //微信全局    "IsDebug": true,      //以下不使用的参数可以删除,key 修改后将会失效      //公众号    "Token": "weixin",    "EncodingAESKey": "",    "WeixinAppId": "WeixinAppId",    "WeixinAppSecret": "WeixinAppSecret",    //小程序    "WxOpenAppId": "WxOpenAppId",    "WxOpenAppSecret": "WxOpenAppSecret",    "WxOpenToken": "WxOpenToken",    "WxOpenEncodingAESKey": "WxOpenEncodingAESKey",    //企业微信    "WeixinCorpId": "WeixinCorpId",    "WeixinCorpSecret": "WeixinCorpSecret",      //微信支付    //微信支付V2(旧版)    "WeixinPay_PartnerId": "WeixinPay_PartnerId",    "WeixinPay_Key": "WeixinPay_Key",    "WeixinPay_AppId": "WeixinPay_AppId",    "WeixinPay_AppKey": "WeixinPay_AppKey",    "WeixinPay_TenpayNotify": "WeixinPay_TenpayNotify",    //微信支付V3(新版)    "TenPayV3_MchId": "TenPayV3_MchId",    "TenPayV3_Key": "TenPayV3_Key",    "TenPayV3_AppId": "TenPayV3_AppId",    "TenPayV3_AppSecret": "TenPayV3_AppId",    "TenPayV3_TenpayNotify": "TenPayV3_TenpayNotify",      //开放平台    "Component_Appid": "Component_Appid",    "Component_Secret": "Component_Secret",    "Component_Token": "Component_Token",    "Component_EncodingAESKey": "Component_EncodingAESKey",      //扩展及代理参数    "AgentUrl": "AgentUrl",    "AgentToken": "AgentToken",    "SenparcWechatAgentKey": "SenparcWechatAgentKey"  }