▌关于作者

苏震巍,云开发Linker计划成员,《微信开发深度解析》作者、Senparc.Weixin 微信 SDK 作者、微软最有价值专家(MVP)、盛派网络创始人兼首席架构师、微软 Ignite 技术大会讲师、从事软件及互联网研发已有26年,发布了中国第一个HTML5商业应用,主持了众多大型项目的架构、开发和集成,对物联网、大数据和人工智能相关技术有深入的实践和理解,已为30余家世界 500 强企业提供解决方案和技术支持。

我一直在关注微信生态开发领域和云开发,看到有不少开发者需要服务端 SDK,在服务端调用云开发的数据库和函数,便在我自己的 SDK 中加入了相关的能力,帮助更多的开发者开发出更好的应用

▌关于 SDK

Senparc.Weixin SDK 是目前使用率最高的微信 C#/.NET SDK,包括了微信公众号、小程序、开放平台、微信支付、企业微信、微信硬件平台等几乎全套接口。Senparc.Weixin SDK 也是目前 GitHub 综合排名第一的中国 .NET 开源项目。项目同时兼容多版本的.NET Framework、.NET Standard 和 .NET Core,具备企业级系统集成的所有要素:支持容灾降级和热切换的分布式缓存策略、日志系统、AccessToken 全生命周期管理模块、消息上下文模块、消息队列模块、加解密算法模块,以及全套同步/异步方法。

▌使用教程-上手说明

使用 Senparc.Weixin SDK 开发项目可以参考现有的官方 Demo,其中包括了大部分常用的功能演示,且支持不同 .NET 版本 https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Samples。

以下以使用 .NET Core 开发的小程序为例,开发一个可以调用腾讯云的云函数接口的项目。

1.初始化一个项目

使用 Visual Studio 或 Visual Studio Code 创建一个 ASP.NET Core 项目,并配置项目的基础信息

选择具体的项目模板

看到这里,就说明你完成了项目的初始化

2.安装 SDK

鼠标点击【WeChatCloudFunction.Web】项目右键,选择【管理Nuget程序包...】

在 Nuget 管理窗口内,【浏览】标签下,搜索:Senparc.Weixin.WxOpen

注意:如需开发公众账号,则搜索 Senparc.Weixin.MP,以下操作以小程序为例,仅命名空间不同,对应功能的开发过程对于公众号(MP)、企业微信(Work)是完全一致的,可以举一反三。

3.配置 Senparc.Weixin 框架

在使用 Senparc.Weixin SDK 之间,还有两步基础的配置工作。

除了使用以下手动配置的方式,也可以参考现成的 Demo 直接复制对应代码:https://url.cn/5vUHVMF。

3.1 配置 appsetting.json

在 appsetting.json 追加如下内容:

//CO2NET 设置"SenparcSetting": {"IsDebug": true,"DefaultCacheNamespace": "DefaultCache",//分布式缓存"Cache_Redis_Configuration": "#{Cache_Redis_Configuration}#", //Redis配置"Cache_Memcached_Configuration": "#{Cache_Memcached_Configuration}#", //Memcached配置"SenparcUnionAgentKey": "#{SenparcUnionAgentKey}#"},//Senparc.Weixin SDK 设置"SenparcWeixinSetting": {//微信全局"IsDebug": true,//小程序"WxOpenAppId": "#{WxOpenAppId}#","WxOpenAppSecret": "#{WxOpenAppSecret}#","WxOpenToken": "#{WxOpenToken}#","WxOpenEncodingAESKey": "#{WxOpenEncodingAESKey}#"}

其中, WxOpenAppId 和 WxOpenAppSecret 的字符串值(包括#{}#占位符)替换为小程序后台的值,如,将"#{WxOpenAppId}#" 替换为:"wx12b4f63276b14d4c"。

WxOpenToken 和 WxOpenEncodingAESKey 对应于对话消息管理的 Token 和 EncodingAESKey 参数,如果仅开发高级接口,可以忽略。

3.2 配置 startup.cs

在 ConfigureServices() 方法中追加代码(可以使用自动提示 using 命名空间):

services.AddSenparcWeixinServices(Configuration);
//Senparc.Weixin 注册

完整方法代码

在 Configure() 方法中添加两个参数,自动引入 appsettings.json 中的配置:IOptionssenparcSetting, IOptionssenparcWeixinSetting,完整代码:

在方法体末尾追加代码:

app.UseSenparcGlobal(env, senparcSetting.Value, null, true)
.UseSenparcWeixin(senparcWeixinSetting.Value,
weixinRegister =>
{weixinRegister.RegisterWxOpenAccount(senparcWeixinSetting.Value,
"【云函数】小程序");
});

其中第一行代码是配置启用 CO2NET(Senparc.Weixin 的一个基础库)全局配置,第二行代码开始配置 Senparc.Weixin SDK 及小程序参数。

完整代码:

在 startup.cs 中添加以上3段代码,就可以开始使用所有微信的高级接口了。

4.调用小程序云开发的云函数

高级接口可以在任意地方出发,这里为了方便演示,我们将其放置在首页中。

打开 Controllers/HomeController.cs,创建一个新的 Action 方法 Api(),添加如下代码,即可调用云函数相关的接口:

var wxOpenSetting =
Senparc.Weixin.Config.SenparcWeixinSetting.WxOpenSetting;
var envId= "senparc-robot-5f5128";
var result = Senparc.Weixin.WxOpen.AdvancedAPIs.Tcb.TcbApi.DatabaseCollectionGet(wxOpenSetting.WxOpenAppId,
envId);
return Content(result.ToJson(true));

其中,wxOpenSetting 是通过 startup.cs 中代码自动进行了全局配置的全套小程序配置参数,evnId 是云函数的环境ID,可以通过以下方式获取到:

打开小程序开发工具,点击【云开发】按钮

在新窗口中点击【设置】按钮

即可在右上角看到“环境ID(Environment ID)”。

完整代码:

启动项目后,即可看到默认的首页:

访问新建的页面/Home/Api,即可看到成功获得到接口结果:

▌其他

演示项目地址:https://github.com/Senparc/WeChatCloudFunction/tree/master

▌关于 Linker 计划

Linker计划,是云开发推出的,面向开源作者和开源团队的开源协调合作计划,旨在共建良好的云开发开源生态,为【云开发者】提供更多便利好用的开源SDK、案例或适配软件。

Linker计划,鼓励开源项目提供云开发版本或内建云开发支持,云开发将助力合作开源项目成长。如果有兴趣,可以发送您的开源项目、希望和云开发的合作方式等信息到 cloudbase@tencent.com

云开发目前已有两个不同语言的社区 SDK:Golang 和 C#, 除了这两门语言,你还期待什么语言 SDK 呢?

 更多精彩 

点击下方图片即可阅读


      点击在看让更多人发现精彩

如何在 C# 平台调用云开发?相关推荐

  1. Duang,您的钉钉应用已上线!云开发5分钟快速打造钉钉会议室预定系统

    简介: 5分钟可以干什么?喝一杯咖啡,回一封邮件,还是开发上线一个钉钉应用.云开发平台联合钉钉开发平台推出0门槛打造你的第一个钉钉应用的活动,完成相应任务后,即可领取精美奖品.春暖花开,领个背包去踏春 ...

  2. 微信小程序云开发之网易云音乐

    这是跟着慕课网谢成老师敲得代码 注意 知识点 疑惑 思路 妙 优化 一个要注意的地方:如果获取歌词的时候报错(才发现解决办法的图片没传上来 大概就是改变一下请求头数据) 第一章课程介绍 云开发(音乐播 ...

  3. 微信小程序云开发-内容管理系统(CMS)小案例

    一.前言 最近有朋友问到如何在CMS上实现审核小程序端提交的数据,例如发布的内容审核,订单审核等等.因而出一篇小案例. 二.原理说明 这个由腾讯开源的这个内容管理系统,实际上就是对于云开发数据库的可视 ...

  4. 企业怎么选择低代码/无代码?J2PaaS云开发平台将为市场提供新参考!

    随着数字化升级需求的加快,有着革命性生产力的低代码技术正在被市场所接受,那么对于企业和开发者来说,到底是选择低代码还是无代码?全球知名行研机构Gartner近期发布了<低代码开发平台技术评估指南 ...

  5. 视频教程-【三月】微信小程序云开发项目实战课程 - T3租机械-微信开发

    [三月]微信小程序云开发项目实战课程 - T3租机械 宁夏酷申科技有限公司技术总监,计算机专业毕业后一直从事技术开发和架构工作 袁永刚 ¥366.00 立即订阅 扫码下载「CSDN程序员学院APP」, ...

  6. 小程序picker_小程序·云开发实战 - 迷你微博

    0. 前言 本文将手把手教你如何写出迷你版微博的一行行代码,迷你版微博包含以下功能: Feed 流:关注动态.所有动态 发送图文动态 搜索用户 关注系统 点赞动态 个人主页 使用到的云开发能力: 云数 ...

  7. 小程序云开发常用语句宝库

    查询语句,返回的是 res.data[] 数组 调用云函数返回的是res.result get 数据获取返回的是 res.data{} 对象 1.调用云函数 this.DB = wx.cloud.da ...

  8. 小程序云开发,订阅消息定时批量发送实现代码

    需求:做一个类似抽奖结果通知的订阅消息提醒 实现流程: 每个用户需要先授权订阅消息接收,授权成功后把数据存到云开发的数据集合里面,再写个定时器,遍历数据集合的所有数据,拿到后遍历发送订阅消息,发送成功 ...

  9. 小程序云开发更新数组的指定对象的值

    云开发,在小程序实现 代码说明': 在这里,数据集合 groupList 中的 userList 是一个用户列表数组,我要更新数组中,openid 等于我的openid 的在线状态为 true. 先查 ...

最新文章

  1. skyline的用法
  2. 【MM】计划交货成本(Delivery Costs)
  3. 抓取html 中文乱码,利用代码抓取网页数据,出现中文乱码问题
  4. .NET创建WebService服务简单的例子
  5. UI交互设计教程分享:提高界面交互体验的“葵花宝典”
  6. android网页省略分页器,Android轻量级网页风格分页器
  7. 全新精美UI口红机闯三关赢礼品源码
  8. maple 2018 窗口关闭提示乱码_iPhone最废柴却无法关闭的俩功能,我终于屏蔽了!...
  9. mysql数据库innodb恢复命令_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据
  10. linux cat 筛选文件夹,Linux 基础命令 -- cat、sort、uniq、wc、head、tail、tee
  11. 持有数字货币的手机丢了,数字货币还能找回来吗?该注意些什么?
  12. python数据可视化是什么_python3数据可视化是什么?
  13. 【李宏毅2020 ML/DL】P52 Network Compression - Network Pruning
  14. eclipse对mysql进行增删改查_用eclipse编写的 能对MySQL数据库中表实现增删改查功能...
  15. ADO.NET的DataAdapter对象的方法
  16. apache设置域名绑定 以及绑定不起作用的排查.
  17. JS常用事件兼容性处理方法
  18. 数据挖掘十大经典算法
  19. 374C. Inna and Dima
  20. Access 查询的IIF的写法

热门文章

  1. [Unity 游戏设计的元素]
  2. [ACM_图论] The Perfect Stall 完美的牛栏(匈牙利算法、最大二分匹配)
  3. DbVisualizer 8 解决中文乱码问题
  4. IHttpModule 与IHttpHandler的区别
  5. 文档过期打不开怎么办_标准的产品需求文档在这里!(详细说明版)(2)
  6. python博客访问量_史诗级干货-python爬虫之增加CSDN访问量
  7. sfm点云代码_VisualSFM使用方法与心得
  8. 目标检测算法之Fast R-CNN算法详解
  9. 4. MyBatis几个可以优化的地方
  10. 1.1-1.5-vim编辑器