Selaa lähdekoodia

添加从微信下载资源文件接口

huangrf 5 vuotta sitten
vanhempi
commit
a63582bc4d
1 muutettua tiedostoa jossa 38 lisäystä ja 0 poistoa
  1. 38 0
      third/wx/wx.go

+ 38 - 0
third/wx/wx.go

@@ -11,8 +11,11 @@ import (
 	"github.com/silenceper/wechat/oauth"
 	"github.com/silenceper/wechat/pay"
 	"github.com/silenceper/wechat/util"
+	"io"
 	"io/ioutil"
+	"net/http"
 	"net/url"
+	"os"
 	"strconv"
 	"strings"
 )
@@ -228,3 +231,38 @@ func GetUserInfo(openId string)(*oauth.UserInfo, error){
 	userInfo, err := wxoauth.GetUserInfo(token.AccessToken, openId)
 	return &userInfo, err
 }
+
+/**
+  * @brief: 根据资源id从微信下载
+  * @param1 resId: 资源id
+  * @param2 tagFile: 目标文件
+  * @return: 错误信息
+  */
+func Download(resId, tagFile string)error{
+	token, err := wc.GetAccessToken()
+	if err != nil{
+		fmt.Println("wc.GetAccessToken()错误", err.Error())
+		return err
+	}
+	mediaUrl := "https://api.weixin.qq.com/cgi-bin/media/get"
+	downloadUrl := mediaUrl + "?access_token=" + token + "&media_id=" + resId
+	res, err := http.Get(downloadUrl)
+	if err != nil{
+		fmt.Println("请求资源错误:" + err.Error())
+		return err
+	}
+
+	f, err := os.Create(tagFile)
+	if err != nil {
+		fmt.Println("本地创建资源文件:" + err.Error())
+		return err
+	}
+
+	_, err = io.Copy(f, res.Body)
+	if err != nil{
+		fmt.Println("写入本地资源文件:" + err.Error())
+		return err
+	}else{
+		return nil
+	}
+}