1
头图
本文已收录编程学习笔记。涵盖PHP、JavaScript、Linux、Golang、MySQL、Redis和开源工具等等相关内容。

最近准备用Go语言开发微信小程序,发现会调用很多微信小程序的服务端接口,并且还需要自己封装。于是想着去GitHub上看看,是否有第三方现成的SDK直接拿来使用,结果发现两个非常不错的第三方库,这里分享给大家。

SDK标准

这里罗列几点,个人在使用第三方开源库的一些标准版,供大家参考:

  1. 功能稳定,有上生产环境的案例。避免出现SDK问题,需要开发者自己解决。
  2. 开发团队稳定,持续更新。避免出现bug后期无人修复,出现一种类似KPI的开源项目。
  3. 功能足够强大。毕竟是使用开源SDK,就是为了减少自己去开发一些额外的功能,把尽力更多的用在实现业务上。
  4. 完善的文档。一个再好的开源项目,如果没有一个完善的文档,这无疑给使用者增加了一个门槛,同时也降低了开发效率,达不到直接使用第三方SDK的目的。

easywechat

用PHP开发过微信生态的产品,估计都知道easywechat是一个开源的、非官方的第三方SDK。功能强大、安装和使用非常简单,因为它是一个标准的 Composer 包,这意味着任何满足下列安装条件的 PHP 项目支持 Composer 都可以使用它。直接使用下面的命令,安装就可以正常使用了。

composer require overtrue/wechat

powerwechat

PowerWeChat是一款简单易用的WeChat SDK for Golang目前已经覆盖微信公众号、微信小程序、微信支付、企业微信。功能非常的强大,几乎是把微信生态的产品都包含在内。在选择它主要基于下面几个目的:

  1. 功能强大,完整的微信生态覆盖。涵盖了微信公众号、微信小程序、微信企业号和微信支付。基本我们接触的微信开发,也都是这几个类目。所以足够我们使用了。
  2. 开发团队稳定。PowerWechat由Artisan Cloud团队潜心研发并且也在持续更新和完善当中。
  3. 完善的文档。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。支持如下功能:

  1. 登录|用户信息
  2. 订阅消息
  3. 客服消息
  4. 统一服务消息
  5. 获取小程序码
  6. ...

该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。


Mandy
412 声望627 粉丝