亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作為一個后端開發人員來說,微信開發已經是必備的技能之一了,今天小編就來分享一個相關的類庫shenghui0779/gochat(以下簡稱wechat)。這個類庫簡單易用,看源碼的時候目錄結構一目了然,可以看出作者的思路很清晰,功能也挺豐富日常開發來絕對夠用。下面跟著小編的節湊來一探究竟吧。

目錄結構

 

Golang超好用的WeChat類庫

 

 

  • mch: 商戶平臺相關業務, 下單、支付、退款、查詢、委托代扣、企業付款、企業紅包 等
  • mp:小程序端相關業務, 小程序授權、用戶數據解析、消息發送、二維碼生成、消息 等
  • pub:公眾號相關業務, 網頁授權、菜單、模板消息、消息回復、用戶管理、消息轉客服 等
  • wechat.go 包的入口,獲取以上三個業務的實例

一、支付

下單用法

import (
    "github.com/iiinsomnia/gochat"
    "github.com/iiinsomnia/gochat/mch"
)// UnifiedOrder 統一下單數據  直接引用包里的結構體即可
type UnifiedOrder struct {
	// 必填參數
	OutTradeNO     string // 商戶系統內部的訂單號,32個字符內、可包含字母,其他說明見商戶訂單號
	TotalFee       int    // 訂單總金額,單位為分,詳見支付金額
	SpbillCreateIP string // App和網頁支付提交用戶端ip,Native支付填調用微信支付API的機器IP
	TradeType      string // 取值如下:JSAPI,NATIVE,APP,MWEB,詳細說明見參數規定
	Body           string // 商品或支付單簡要描述
	NotifyURL      string // 接收微信支付異步通知回調地址,通知url必須為直接可訪問的url,不能攜帶參數
	// 選填參數
	DeviceInfo string // 終端設備號(門店號或收銀設備ID),注意:PC網頁或公眾號內支付請傳"WEB"
	Detail     string // 商品名稱明細列表
	Attach     string // 附加數據,在查詢API和支付通知中原樣返回,該字段主要用于商戶攜帶訂單的自定義數據
	FeeType    string // 符合ISO 4217標準的三位字母代碼,默認人民幣:CNY,其他值列表詳見貨幣類型
	TimeStart  string // 訂單生成時間,格式為yyyyMMddHHmmss,如:2009年12月25日9點10分10秒 表示為:20091225091010
	TimeExpire string // 訂單失效時間,格式為yyyyMMddHHmmss,如:2009年12月27日9點10分10秒 表示為:20091227091010
	GoodsTag   string // 商品標記,代金券或立減優惠功能的參數,說明詳見代金券或立減優惠
	ProductID  string // trade_type=NATIVE,此參數必傳。此id為二維碼中包含的商品ID,商戶自行定義
	LimitPay   string // no_credit--指定不能使用信用卡支付
	OpenID     string // trade_type=JSAPI,此參數必傳,用戶在商戶appid下的唯一標識
	Receipt    bool   // 是否在支付成功消息和支付詳情頁中出現開票入口,注:需要在微信支付商戶平臺或微信公眾平臺開通電子發票功能
	SceneInfo  string // 該字段用于上報支付的場景信息
}
// 初始化實例
wxmch := gochat.NewWXMch(appid, apikey, cert)
r, err := wxmch.Order().Unify(order)
if err != nil {
    // 錯誤處理...
}
if r["result_code"] != mch.ResultSuccess {
    // 判斷微信的返回狀態碼,失敗處理...
}
// 成功邏輯處理...
// 拿到預支付的id
prepayID := r["prepay_id"]
// 獲取支付簽名的票據,返回給前端和app就能拉取支付界面了
// APP
data := wxmch.APPAPI(prepayID)
// JS
data := wxmch.JSAPI(prepayID)

查詢訂單狀態

// RefundData 退款數據
type RefundData struct {
	// 必填參數
	OutRefundNO string // 商戶系統內部的退款單號,商戶系統內部唯一,同一退款單號多次請求只退一筆
	TotalFee    int    // 訂單總金額,單位為分,只能為整數,詳見支付金額
	RefundFee   int    // 退款總金額,訂單總金額,單位為分,只能為整數,詳見支付金額
	// 選填參數
	RefundFeeType string // 貨幣類型,符合ISO 4217標準的三位字母代碼,默認人民幣:CNY,其他值列表詳見貨幣類型
	RefundDesc    string // 若商戶傳入,會在下發給用戶的退款消息中體現退款原因
	RefundAccount string // 退款資金來源,僅針對老資金流商戶使用
	NotifyURL     string // 異步接收微信支付退款結果通知的回調地址,通知URL必須為外網可訪問的url,不允許帶參數
}
// 根據微信訂單號查詢
r, err := wxmch.Order().QueryByTransactionID(transactionID)
// 根據商戶訂單號查詢
r, err := wxmch.Order().QueryByOutTradeNO(transactionID)
// 關閉訂單
r, err := wxmch.Order().Close(outTradeNO)

退款

// 根據微信訂單號退款
r, err := wxmch.Refund().RefundByTransactionID(transactionID, refundData)
if err != nil {
    // 錯誤處理...
}
if r["result_code"] != mch.ResultSuccess {
    // 失敗處理...
}
// 成功邏輯處理...
// 根據商戶訂單號退款
r, err := wxmch.Refund().RefundByOutTradeNO(outTradeNO, refundData)
if err != nil {
    // 錯誤處理...
}
if r["result_code"] != mch.ResultSuccess {
    // 失敗處理...
}
// 成功邏輯處理...

 

小程序

登錄授權

import (
    "github.com/iiinsomnia/gochat"
    "github.com/iiinsomnia/gochat/mp"
    "github.com/iiinsomnia/gochat/utils"
)// 初始化小程序實例wxmp := gochat.NewWXMP(appid, appsecret)// 授權 session, err := wxmp.Sns().Code2Session(code)// 數據校驗解密// 數據簽名校驗if signature != utils.SHA1(rawData+sessionKey) {
  return errors.New("簽名校驗失敗")
}// 數據解密bizDataCrypt := wxmp.BizDataCrypt(encryptedData, sessionKey, iv)if err := bizDataCrypt.Decrypt(); err != nil {
  return err
}// 解密后取用戶信息bizData, err := bizDataCrypt.GetUserData()if err != nil {
  return err
}

獲取access_token

accessToken, err := wxmp.CgiBin().GetAccessToken()
if err != nil {
    return err
}// TODO: 存儲 access_token ...

因 access_token 每日獲取次數有限且含有效期,故服務端應妥善保存 access_token 并定時刷新

公眾號

// 獲取公眾號實例
pub := gochat.NewWXPub(accountid, appid, appsecret, signToken, encodingAESKey)

 

整個包看下來還是蠻簡單,使用方便。想要了解更多內容可以去查看作者的源碼和使用說明。

地址: https://github.com/shenghui0779/gochat/wiki

分享到:
標簽:類庫 WeChat
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定