微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能
版本内容
1、修正了缺少对Event.View的支持
2、增加了用户UnionID
3、新增微信小店功能
4、多客服功能
5、单元测试
什么是UnionID
我们知道,每个用户针对一个微信公众账号都有一个openId,对于不同的公众账号,openId都是不同的,但很多公司都有很多微信号,用户也会同时关注同个公司的多个微信账号,为确保用户的唯一性,腾讯增加了UnionID字段,它可以确保在同个微信开放平台(open.weixin.qq.com)账号下的多个公众号的同个用户的唯一性。点击传送门,查看使用方法。
以前我们的开发,都是在mp.weixin.qq.com微信公众账号后台的开发者中心里,现在我们可以在微信开放平台里,把多个公众账号绑定到一个开发者账号中,目前一个账号可以绑定10个公众号。目前2套系统还是分开的,估计以后都会统一到Open系统中,目前Open已经有网站登录、移动登入、移动支付等接口,老应我也会继续跟进的。
UnionID目前只在“获取用户基本信息”中增加,UserInfoResponse增加string类型的UnionID属性。
微信小店
微信公众平台本次更新增加了微信小店功能,微信小店基于微信支付,包括添加商品、商品管理、订单管理、货架管理、维权等功能,开发者可使用接口批量添加商品,快速开店。
必须是已微信认证、已接入微信支付的服务号,才可在服务中心中申请开通微信小店功能。
微信小店其实就是一个微店功能,公众号可以在公众平台后台进行添加、修改、删除等功能,用户可以在其微店下单,使用微信支付。这次微信小店的api文档比较大,所以这次更新慢了点,而且无法进行测试,我只能对每个api进行了单元测试,比对文档中提供的json数据,虽说简单,但工作量巨大,pdf文档无法进行复制黏贴,所以可能会存在一定的bug,如果发现bug,请及时与我联系。
这次的Api中,增加了一个DefaultResponse的响应类,主要是针对一些api请求只需要返回errcode和errmsg,比如在修改商品、删除商品等api中都会遇到,这些api只需要返回成功与否即可,所以就不增加其相对应的Response了。
微信小店有个货架功能,他与库存不是一个概念,它的概念相当于超市的货品摆放架,你可以创建多个货架,每个货架可以包含一个或多个货架控件。这个可能很难理解,你可以理解成页面和控件,一个货架就是一个页面,货架控件相当于我们的web控件。目前微信小店提供了5种货架控件,摆放和关联都有一定的限制。
控件1:是由一个分组组成,展示该指定数量的商品列表可与控件,可以与控件2、控件3、控件4联合使用
控件2:是由多个分组组成(最多有4个分组),展示指定分组的名称,可以与控件1、控件3、控件4联合使用
控件3:是由一个分组组成,展示指定分组的分组图片,可以与控件1、控件2、控件4联合使用
控件4:是由多个分组组成(最多3个分组),展示指定分组的分组图片,可以与控件1、控件2、控件3联合使用
控件5:是由多个分组组成,展示指定分组的名称,不可以与其他控件联合使用。
具体的样式,大家可以参考pdf文档。
因为控件我都继承了ShelfModule的抽象类,在json反序列化时造成了很大的麻烦,最后虽然解决了,但总觉得不够理想,过几天我会整理下,把我的方案分享下,也希望有大虾指点下。
以下是微信小店的API的Request和Response的对应表:
| 商品管理接口 | ||
| 增加商品 | MerchantCreateRequest | MerchantCreateResponse |
| 删除商品 | MerchantDelRequest | DefaultResponse |
| 修改商品 | MerchantUpdateRequest | DefaultResponse |
| 查询商品 | MerchantGetRequest | MerchantGetResponse |
| 获取指定状态的所有商品 | MerchantGetbystatusRequest | MerchantGetbystatusResponse |
| 商品上下架 | MerchantModproductstatusRequest | DefaultResponse |
| 获取指定分类的所有子分类 | MerchantCategoryGetsubRequest | MerchantCategoryGetsubResponse |
| 获取指定子分类的所有SKU | MerchantCategoryGetskuRequest | MerchantCategoryGetskuResponse |
| 获取指定分类的所有属性 | MerchantCategoryGetpropertyRequest | MerchantCategoryGetpropertyResponse |
| 库存管理接口 | ||
| 增加库存 | MerchantStockAddRequest | DefaultResponse |
| 减少库存 | MerchantStockReduceRequest | DefaultResponse |
| 邮费模板管理接口 | ||
| 增加邮费模板 | MerchantExpressAddRequest | MerchantExpressAddResponse |
| 删除邮费模板 | MerchantExpressDelRequest | DefaultResponse |
| 修改邮费模板 | MerchantExpressUpdateRequest | DefaultResponse |
| 获取指定ID的邮费模板 | MerchantExpressGetbyidRequest | MerchantExpressGetbyidResponse |
| 获取所有邮费模板 | MerchantExpressGetallRequest | MerchantExpressGetallResponse |
| 分组管理接口 | ||
| 增加分组 | MerchantGroupAddRequest | MerchantGroupAddResponse |
| 删除分组 | MerchantGroupDelRequest | DefaultResponse |
| 修改分组属性 | MerchantGroupPropertymodRequest | DefaultResponse |
| 修改分组商品 | MerchantGroupProductmodRequest | DefaultResponse |
| 获取所有分组 | MerchantGroupGetallRequest | MerchantGroupGetallResponse |
| 根据分组ID获取分组信息 | MerchantGroupGetbyidRequest | MerchantGroupGetbyidResponse |
| 货架管理接口 | ||
| 增加货架 | MerchantShelfAddRequest | MerchantShelfAddResponse |
| 删除货架 | MerchantShelfDelRequest | DefaultResponse |
| 修改货架 | MerchantShelfModRequest | DefaultResponse |
| 获取所有货架 | MerchantShelfGetallRequest | MerchantShelfGetallResponse |
| 根据货架ID获取货架信息 | MerchantShelfGetbyidRequest | MerchantShelfGetbyidResponse |
| 货架上下架 | MerchantShelfUpdatestatusRequest | MerchantShelfUpdatestatusResponse |
| 订单管理接口 | ||
| 订单付款通知 | RequestOrderEventMessage(通知信息) | |
| 根据订单ID获取订单详情 | MerchantOrderGetbyidRequest | MerchantOrderGetbyidResponse |
| 根据订单状态/创建时间获取订单详情 | MerchantOrderGetbyfilterRequest | MerchantOrderGetbyFilterResponse |
| 设置订单发货信息 | MerchantOrderSetdeliveryRequest | DefaultResponse |
| 关闭订单 | MerchantOrderCloseRequest | DefaultResponse |
| 功能接口 | ||
| 上传图片 | MerchantCommonUploadimgRequest | MerchantCommonUploadimgResponse |
这里大家要注意一点,这里接口所用到的图片url,都需要通过上传图片api上传后获取的url
多客服功能
1、将消息转发到多客服:
在收到客户消息时,只要返回 ResponseTransferCustomServiceMessage 的实例即可。
2、获取客服聊天记录:
使用了高级接口,创建一个CustomServiceGetRecordRequest实例,提交后获取CustomServiceGetRecordResponse。
单元测试
这次因为没有测试接口,所以对所有的api进行的Mock测试,基本是通过了,但还是无法保证正确性,希望大家在试用中能与我多交流,尽量的消灭bug。
之前因为有测试接口,我都能实地的测试,这次呢通过单元测试,虽然很枯燥,但帮助真的很大,其中测试出了很多小bug,单词拼错,报错等等,所以希望大家在自己的项目中,不要压缩测试的时间,这个真的很重要。
相关文档
1、微信公众平台开发者文档 点击进入
2、微信小店文档 点击下载
3、源代码已更新至Github 点击进入
写在最后
最近微信的升级加快,由于精力有限,所以这次版本升级较慢,造成的不便深感抱歉,很多朋友问我为什么做框架而不是实例?实例至少可以卖钱,但本人不是这样想,做这个框架是第一是为了完成自己对开源的一个理想,第二呢也是方便大家能够对公众平台的快速入门。后续呢可能会针对微信的开放平台进行框架设计,也有可能完成对公众平台的一个实例,至于时间,无法保障。
很多人觉得项目名称有点变扭,没办法,一开始我只是针对自己的平台做的小框架,名字也乱起的,后来也懒得改了,将错就错吧,哈。
最后推荐个QQ群:85318032 (博友加入的时候,请注明自己的技术特长)
微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能的更多相关文章
- 微信快速开发框架(七)--发送客服信息,版本更新至V2.2 代码已更新至github
在V2版本发布的博文中,已经介绍了大多数Api的用法,同时也收到了很多意见,其中发布了几个修正版本,修改了几个bug,在此感谢大家的使用,有了大家的支持,相信快速开发框架会越来越好,也会越来越完善的. ...
- 微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github
不知不觉,版本以每周更新一次的脚步进行着,接下来应该是重构我的代码及框架的结构,有朋友反应代码有点乱,确实如此,当时写的时候只是按照订阅号来写的,后来才慢慢增加到支持API接口.目前还在开发第三方微信 ...
- 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github
4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...
- [转].NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
[转].NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员 ...
- Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (3)
接上篇 Blazor组件自做九: 用20行代码实现文件上传,浏览目录功能 (2) 7. 使用配置文件指定监听地址 打开 appsettings.json 文件,加入一行 "UseUrls&q ...
- 最新发布C#.NET快速开发框架企业版V4.0 (适合开发ERP、进销存系统)
C/S系统开发框架-企业版 V4.0 (Enterprise Edition) http://www.csframework.com/cs-framework-4.0.htm 视频下载: 百度网盘: ...
- .NET Core前后端分离快速开发框架(Core.3.0+AntdVue)
.NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员登录 ...
- 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生
-- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...
- 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootUtil ...
随机推荐
- angular源码分析:angular中脏活累活的承担者之$interpolate
一.首先抛出两个问题 问题一:在angular中我们绑定数据最基本的方式是用两个大括号将$scope的变量包裹起来,那么如果想将大括号换成其他什么符号,比如换成[{与}],可不可以呢,如果可以在哪里配 ...
- JS学习笔记10之Math对象
-->Math对象 常用属性和方法-->使用Math对象制作相应的效果 Math对象用于执行数学任务 一.Math对象的属性: 二.Math对象的方法: 三.常用属性和方法: Math.P ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
- arcTo 画 狐行
<!DOCTYPE HTML><head> <meta charset = "utf-8"> <title>starGirl< ...
- 整型信号量和PV操作(计算机操作系统)
在整型信号量机制中,信号量被定义为一个整形变量.除初始化外,仅能通过两个标准的原子操作Wait(S)和Signal(S)来访问.其通常分别被称为P.V操作. 描述如下: P操作:S=S-1:如果S小于 ...
- Linux如何查找大文件或目录总结
在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件 ...
- DDD实施经验分享—价值导向、从上往下进行(圈内第一个吃螃蟹DDD实施方案)
阅读目录: 1.背景 2.从业务开始 3.从战略到战术 4.借助外力推动研发(QA.领导.自动化测试) 5.领域模型与SAAS平台的内核(价值最大化) 6.最后 1.背景 DDD本身的技术就不介绍了, ...
- 使用 python 获取 Linux 的 IP 信息(通过 ifconfig 命令)
我们可以使用 python 代码通过调用 ifconfig 命令来获取 Linux 主机的 IP 相关信息,包括:网卡名称.MAC地址.IP地址等. 第一种实现方式: #!/usr/bin/pytho ...
- js中取得当前加载的js的src地址
在很多js框架中看到过,如果要动态加载框架内部的其他js,加载的时候加载的地址经常是一个相对的地址,只能是这样了哦,因为框架根本不知道用此框架的用户,将框架js文件放的具体目录,所以框架中一般会采用如 ...
- Ubuntu 系统 update-rc.d 命令
Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统启动项的脚本.这些脚本的链接位于/etc/rcN.d/目录,对应脚本位于/etc/init.d/目录.在了解update-r ...