受欢迎的博客标签

一、微信平台体系

(一)微信开放平台  

       微信开放平台针对开发者,给予获取各种微信应用的信息

(二)微信公众平台

1、订阅号

2、服务号

3、企业号

4、小程序  

微信平台体系结构

微信开放平台(https://open.weixin.qq.com)
├───提供用户qq\微信登陆功能
└───提供同一用户unionid
微信公众平台(https://mp.weixin.qq.com)
├───订阅号  提供同一用户的单独的用户openid
├───服务号  提供同一用户的单独的用户openid
├───企业号  提供同一用户的单独的用户openid
├───小程序  提供同一用户的单独的用户openid
微信支付平台(https://pay.weixin.qq.com)
├───普通商户号:这种是指自己公司开发自己公司收、发资金用。不能给其他公司提供支付服务。
│   └───
└───服务商商户号:类似第三方支付服务提供商。如:支付宝、块钱等第三方服务商。
    └───

二、微信的用户体系

(一)UnionID机制

如果同一个微信用户访问了开发者拥有多个移动应用、网站应用、和公众帐号、小程序,开发者可以获取该用户的OpenId,但这些OpenID是各不相同的,你无法知道他是同一个用户。但如果把他们和微信开放平台(https://open.weixin.qq.com)关联起来(官方语言:绑定),则他们在开放平台下就有了一个unionid且是唯一的。开发者在不同应用下除了可获得该用户的OpenID外,还用获取该用户在开放平台里的unionid。通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的  

(二)各种应用绑定到同一个微信开放平台

1. 将多个公众号绑定到同一个微信开放平台(open.weixin.qq.com)帐号下,即同一个Union下

2.确保本小程序是绑定在一个公共的开放平台下  

3. 通过获取用户基本信息接口中的UnionID来区分用户的唯一性,不过需要注意的是:公众号只有在被绑定到微信开放平台帐号(https://open.weixin.qq.com)下后,才会获取UnionID。只要是同一个微信开放平台帐号下的公众号,用户的UnionID是唯一的。换句话说, 同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。

4.在什么情况下用到UnionID?

同一个平台下,多个小程序,需要账户相互打通的情况下,就会用UnionID。尽管同一用户在同一平台下不同的小程序中openid是不同的,但UnionID一定是相同的。

(三)注意

1.开放平台需进行微信认证(企业)才能绑定微信公众号。

2.开放平台未执行微信认证(个人)可以绑定小程序。 微信openid和UnionID (多公众号如何判断是否是同一人)

三、微信服务号

     1.微信服务号的注册      

      微信、微信公众平台和微信开放平台的注册邮箱都是独立唯一的。其中微信公众平台的订阅号、服务号、小程序、企业号都必须用不同的邮箱。并且之前注册过的邮箱【不管是否注册成功】,都不允许进行二次注册。      微信公众平台账号和开发者账号都需要微信管理员。     公众平台里微信认证,交300;开放平台里也要微信认证,提交的资料/主体和之前一模一样,就是不能用同一个邮箱,然后就再认证你一次,再交300。服务号的微信认证是针对服务号本身的,用于证明该服务号确实属于某企业。

      申请微信公众号-服务号并认证步骤  https://jingyan.baidu.com/article/597a06433af32f312a52436a.html

企业服务号注册申请实战记录: 

1、准备一个邮箱

2、营业执照

3、对公账户信息

4、管理员身份证

填写时选企业(不选个体工商户,不选其他组织)

5.对公打款 2.微信服务号的验证  

2.1 微信服务号主体验证

(一)主体验证入口 点击首页,出现“验证”按钮,可选择用支付验证或微信认证完成验证主体身份

(二)验证方式选择

方式一:支付验证-对公打款验证,用企业的银行账户按腾讯的指定的金额在规定的时间段内打款到腾讯指定的账户,验证更简单,一分钱证明你是你。

方式二:微信认证完成验证主体身份-上传一堆资料

2.2 微信服务号的微信支付验证 微信支付则是通过财付通来实现的,财付通与微信虽然都是同一个爹生的,但都仍然属于相互独立的部门,更何况在线支付是涉及钱财交易的重要功能,所以这是要经过另外的专门的认证的。因此,这两种认证基本上可以说不同的、互不相干的认证,唯一有关联的地方可能就是:服务号必须先经过微信认证,再经过财付通的支付认证,才具有微信支付功能。  

申请权限

1、组织机构代码证目前仅支持中国大陆企业;注: 若由于三证合一原因没有组织机构代码证时可填统一社会信用代码;

2、企业工商营业执照(副本)中国大陆工商局或市场监督管理局颁发的工商营业执照必须在有效期内,且须是当前企业最新的工商营业执照。注: 三证合一统一社会信用代码18位,可在营业执照注册号位置上填写“注册号”或“统一社会信用代码”;

3、申请公函请下载申请认证公函(模版参考示例)填写认证公函需要提供公众号的原始ID,去我的账户信息查看原始ID。上传加盖企业公章的原件照片或扫描件

4、其他证明材料可提交其他证明材料。注:上传文件需加盖企业公章的原件照片或扫描件支持.jpg .jpeg .bmp .gif .png格式照片,大小不超过2M。  

信息配置

1.上传图像

2.修改微信号

3.设置公司地址    

微信服务号开发准备工作

需配置Appid,AppSecret,URL,Token信息

(一)服务器及接口的配置 配置和验证 在开始微信号开发之前需要准备好两样东西,

 

1、需要一个拥有域名的服务器,https协议,80端口(443端口) 申请微信公众平台接口测试帐号。

2.登陆微信公众号平台,进行第三方中转服务器配置(已启用)

服务器地址(URL):https://weixin.usdotnet.com/weixin?originalid=gh_5588**6e31

令牌(Token):deiekjej

申请网址:(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)。

申请接口测试号无需公众帐号,可以直接体验和测试公众平台所有高级接口。  配置 screat 配置服务器IP白名单 服务器接口的配置实战  

 开发者设置:

1.设置开发者密码(AppSecret):

2.将服务器IP加入白名单:开发者微信扫码->管理员同意->输入公众号密码登录->永久保存    ->服务器IP加入白名单

 

开发步骤记录:

step 1:让开发者服务器通过微信官方服务器的认证

公众平台设置参数后,点击提交,要显示“提交成功”,需要2个条件

1.1 四个参数都已设置:Appid,AppSecret,URL,Token

1.2 开发者服务器IP加入白名单

1.3 开发者服务器向微信官方服务器返回echostr的内容。

 

点击提交,用下面的程序回应,即表示开发者服务器接入微信平台成功。修改配置、IP等信息后,也需要提交一次,否则微信官方服务器不会发送服务器认证消息。

 public async Task<IActionResult> Index()
        {
            

            var signature = _httpContextAccessor.HttpContext.Request.Query["signature"];//微信加密签名
            var timestamp = _httpContextAccessor.HttpContext.Request.Query["timestamp"];//时间戳 
            var nonce = _httpContextAccessor.HttpContext.Request.Query["nonce"];//随机数 
            var echostr = _httpContextAccessor.HttpContext.Request.Query["echostr"];//随机字符串 

            _logger.LogInformation($"{DateTime.Now} {_httpContextAccessor.HttpContext.Connection.RemoteIpAddress} get weixin/index called");

            try
            {
                if (!string.IsNullOrEmpty(echostr))
                {
                    //服务器认证

                    _logger.LogInformation($"{DateTime.Now} {_httpContextAccessor.HttpContext.Request.Headers["X-FORWARDED-FOR"]} 微信官方服务器认证发送过来的信息:{echostr}");
                    return Content(echostr);

                }

step 2:对微信官方服务器Post过来的数据进行响应

流程:用户微信发送消息->微信官方服务器收到用户发送的消息->微信官方服务器将此消息转发给开发者服务器(Post方式)->开发者服务器解析消息并返回结果给微信官方服务器->微信官方服务器将消息转发给用户。

2.1.1 实际测试过程中,用nginx代理,但未收到微信服务器post过来的消息。经查:nginx 的https 返回了400。

直接用下面的命令运行服务器:

dotnet run --urls http://0.0.0.0:80
不能用
dotnet run --urls http://kocalhost:80

 

webtool如何打开已存在的拷贝项目

 

webtool工具,选择“+”图标,导入已存在的项目即可恢复原项目信息。

 

 

 基础知识 常见的有openid 长度为28、access_token长度为107、headimgurl长度为129 sdk

(1) Senparc.Weixin.MP    

Github: https://github.com/JeffreySu/WeiXinMPSDK 

Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的 开发套件(C# SDK), 已全面支持微信公众号、微信支付、企业号、开放平台、JSSDK、摇一摇周边等模块。   

2)WeixinSDK.net  

Github:  https://github.com/night-king/weixinSDK

目前只针对微信公众平台开发者文档所有API进行包装也就是微信服务号和订阅号的开发,不支持微信企业号和移动端API。但是不排除企业号和移动端API共有部分的调用,对于这部分本SDK不保证其能调用成功。 WeixinSDK的设计思路是小而美,对代码有洁癖的程序员很容易为之着迷,基本上API涉及到的业务他都用Dynamic对象表示,所以显得一下子比Senparc轻了许多。轻量级,结构清晰,简单灵活。  

3.Aquarius.Weixin .net core 2.0

3.1微信公众号开发框架

https://github.com/Weidaicheng/Aquarius.Weixin

3.2Senparc.Weixin SDK 微信公众号 .NET 开发教程 索引

http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html

  4)升讯威微信营销系统(第三方微信平台)

完整源代码 https://github.com/iccb1013/Sheng.WeixinConstruction  

5) https://github.com/RabbitTeam/WeiXinSDK

  6)微信公众号快速开发框架(WX MP QuickFramework) Net Core 2.0版本 https://github.com/jamesying/jcwxcore  

  第三方商业平台

1.芝麻小程序客户系统 http://xiaokefu.com.cn .

 

博客系列

伍华聪微信开发博客系列

https://www.cnblogs.com/wuhuacong/p/5366730.html

2.微信ipad、微信mac协议,可实现微信80%功能;支持62数据登录、扫码登录、收发朋友圈、查看朋友圈、微信建群、微信拉人进群、微信公众号阅读、微信消息收发、微信附近的人定位、微信添加好友、微信红包接收、微信防撤回、分享小程序、微信加粉、微信收藏、微信标签等

https://github.com/changtuiqie/Mac.WeChat

开发文档索引

1.微信公众号开发文档  https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Network_Detection.html

2.微信小程序开发文档    https://developers.weixin.qq.com/miniprogram/dev/framework/

3.微信支付开发文档