一個為Go語言量身定做、超級好用的支付SDK。
GitHub地址:wxpay
支付開發文檔API
對支付開發人員文檔中給出的API進行了封裝。
wxpay提供了對應的方法:
| 方法名 | 說明 |
| ---------------- | ----------- |
| MicroPay | 刷卡支付 |
| UnifiedOrder | 統一下單 |
| OrderQuery | 查詢訂單 |
| Reverse | 撤銷訂單 |
| CloseOrder | 關閉訂單 |
| Refund | 申請退款 |
| RefundQuery | 查詢退款 |
| DownloadBill | 下載對賬單 |
| Report | 交易保障 |
| ShortUrl | 轉換短連結 |
| AuthCodeToOpenid | 授權碼查詢openid |
參數為Params
類型,傳回型別也是Params
,Params
是一個 map[string]string 類型的結構體。
方法內部會將參數會轉換成含有appid
、mch_id
、nonce_str
、sign\_type
和sign
的XML;
預設使用MD5進行簽名;
通過HTTPS請求得到返回資料後會對其做必要的處理(例如驗證簽名,簽名錯誤則拋出異常)。
對於downloadBill,無論是否成功都返回Map,且都含有return_code
和return_msg
。若成功,其中return_code
為SUCCESS
,另外data
對應對賬單資料。
安裝
go get github.com/objcoding/wxpay
樣本
// 建立支付用戶端client := wxpay.NewClient(wxpay.NewAccount{AppID: "appid",MchID: "mchid",ApiKey: "apiKey",}, false) // sandbox環境請傳true// 統一下單params := make(wxpay.Params)params.SetString("body", "test").SetString("out_trade_no", "436577857").SetInt64("total_fee", 1).SetString("spbill_create_ip", "127.0.0.1").SetString("notify_url", "http://notify.objcoding.com/notify").SetString("trade_type", "APP")p, _ := client.UnifiedOrder(params)// 訂單查詢params := make(wxpay.Params)params.SetString("out_trade_no", "3568785")p, _ := client.OrderQuery(params)// 退款params := make(wxpay.Params)params.SetString("out_trade_no", "3568785").SetString("out_refund_no", "19374568").SetInt64("total_fee", 1).SetInt64("refund_fee", 1)p, _ := client.Refund(params)// 退款查詢params := make(wxpay.Params)params.SetString("out_refund_no", "3568785")p, _ := client.RefundQuery(params)
// 建立支付賬戶account := wxpay.NewAccount("appid", "mchid", "apiKey")// 設定認證account.SetCertData("認證地址")// 建立支付用戶端client := wxpay.NewClient(account, false) // sandbox環境請傳true// 設定http請求逾時時間client.SetHttpConnectTimeoutMs(2000)// 設定http讀取資訊流逾時時間client.SetHttpReadTimeoutMs(1000)// 更改簽名類型client.SetSignType(HMACSHA256)// 設定支付賬戶client.setAccount(account)
// 簽名signStr := client.Sign(params)// 校正簽名b := client.ValidSign(params)
// 支付或退款返回成功資訊return wxpay.Notifies{}.OK()// 支付或退款返回失敗資訊return wxpay.Notifies{}.NotOK("支付失敗或退款失敗了")
License
MIT license