本文已收录编程学习笔记。涵盖PHP、JavaScript、Linux、Golang、MySQL、Redis和开源工具等等相关内容。
最近准备用Go语言开发微信小程序,发现会调用很多微信小程序的服务端接口,并且还需要自己封装。于是想着去GitHub上看看,是否有第三方现成的SDK直接拿来使用,结果发现两个非常不错的第三方库,这里分享给大家。
SDK标准
这里罗列几点,个人在使用第三方开源库的一些标准版,供大家参考:
- 功能稳定,有上生产环境的案例。避免出现SDK问题,需要开发者自己解决。
- 开发团队稳定,持续更新。避免出现bug后期无人修复,出现一种类似KPI的开源项目。
- 功能足够强大。毕竟是使用开源SDK,就是为了减少自己去开发一些额外的功能,把精力更多的用在实现业务上。
- 完善的文档。一个再好的开源项目,如果没有一个完善的文档,这无疑给使用者增加了一个门槛,同时也降低了开发效率,达不到直接使用第三方SDK的目的。
easywechat
用PHP开发过微信生态的产品,估计都知道easywechat是一个开源的、非官方的第三方SDK。功能强大、安装和使用非常简单,因为它是一个标准的 Composer 包,这意味着任何满足下列安装条件的 PHP 项目支持 Composer 都可以使用它。直接使用下面的命令,安装就可以正常使用了。
代码语言:javascript复制composer require overtrue/wechat
powerwechat
PowerWeChat是一款简单易用的WeChat SDK for Golang目前已经覆盖微信公众号、微信小程序、微信支付、企业微信。功能非常的强大,几乎是把微信生态的产品都包含在内。在选择它主要基于下面几个目的:
- 功能强大,完整的微信生态覆盖。涵盖了微信公众号、微信小程序、微信企业号和微信支付。基本我们接触的微信开发,也都是这几个类目。所以足够我们使用了。
- 开发团队稳定。PowerWechat由Artisan Cloud团队潜心研发并且也在持续更新和完善当中。
- 完善的文档。PowerWechat有属于自己的官网,不管是微信公众号、微信小程序、微信企业号和微信支付都有独立的模块介绍如何使用,同时也有完整的示例代码。如下微信企业号开发,如何配置每一个参数定义都有很好的说明。
package main
import (
"log"
)
func main() {
WeComApp, err := work.NewWork(&work.UserConfig{
CorpID: "app_id", // 企业微信的app id,所有企业微信共用一个。
AgentID: 100001, // 内部应用的app id
Secret: "wecom_secret", // 内部应用的app secret
OAuth: work.OAuth{
Callback: "https://wecom.artisan-cloud.com/callback",
Scopes: nil,
},
HttpDebug: true,
})
if err != nil {
panic(err)
}
response := WeComApp.Base.GetCallbackIp()
log.Println(response)
}
go-wechat-miniapp-sdk
go-wechat-miniapp-sdk基于微信小程序相关接口封装,使用golang语言封装的一套微信小程序官方接口SDK。支持如下功能:
- 登录|用户信息
- 订阅消息
- 客服消息
- 统一服务消息
- 获取小程序码
- ...
该SDK同样的,使用起来很简单,也能很快的上手。
下面是该SDK安装方法。
代码语言:javascript复制go get github.com/dgb8901/go-wechat-miniapp-sdk
下面是基础信息配置。
代码语言:javascript复制package helper
import (
"github.com/dgb8901/go-wechat-miniapp-sdk/config"
"github.com/dgb8901/go-wechat-miniapp-sdk/service"
)
type wxaHelper struct {
wxaService *service.WxaService
}
var helper = &wxaHelper{}
func Init() {
cfg := &config.Cfg{
AppId: "AppId",
Secret: "Secret",
Token: "Token",
AesKey: "AesKey",
MsgDataFormat: "DataFormat",
}
// wxaConfig := config.NewInRedis(cfg,"127.0.0.1:6379","123456")
// wxaService := service.NewInRedis(redisConfig)
wxaConfig := config.NewInMemory(cfg)
wxaService := service.NewService(wxaConfig)
helper.wxaService = wxaService
}
func GetWxaService() *service.WxaService {
return wxaHelper.wxaService
}
通过GitHub提交的记录,可以看出这个SDK应该是属于个人开发。没有完整的文档,并且更新时间也很久了。不推荐用于生产环境,如果你是一个想自己学习如何去封装,或者想在这个基础上去实现一个自己的SDK,可以借鉴一下该SDK。