本文已收录编程学习笔记。涵盖 PHP、JavaScript、Linux、Golang、MySQL、Redis 和开源工具等等相干内容。
最近筹备用 Go 语言开发微信小程序,发现会调用很多微信小程序的服务端接口,并且还须要本人封装。于是想着去 GitHub 上看看,是否有第三方现成的 SDK 间接拿来应用,后果发现两个十分不错的第三方库,这里分享给大家。
SDK 规范
这里列举几点,集体在应用第三方开源库的一些标准版,供大家参考:
- 性能稳固,有上生产环境的案例。避免出现 SDK 问题,须要开发者本人解决。
- 开发团队稳固,继续更新。避免出现 bug 前期无人修复,呈现一种相似 KPI 的开源我的项目。
- 性能足够弱小。毕竟是应用开源 SDK,就是为了缩小本人去开发一些额定的性能,把尽力更多的用在实现业务上。
- 欠缺的文档。一个再好的开源我的项目,如果没有一个欠缺的文档,这无疑给使用者减少了一个门槛,同时也升高了开发效率,达不到间接应用第三方 SDK 的目标。
easywechat
用 PHP 开发过微信生态的产品,预计都晓得 easywechat 是一个开源的、非官方的第三方 SDK。功能强大、装置和应用非常简单,因为它是一个规范的 Composer 包,这意味着任何满足下列装置条件的 PHP 我的项目反对 Composer 都能够应用它。间接应用上面的命令,装置就能够失常应用了。
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 装置办法。
go get github.com/dgb8901/go-wechat-miniapp-sdk
上面是根底信息配置。
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。