微信支付数据发送
微信支付数据需要以post的方式发送到微信支付接口
开发实现
创建package tools
创建文件夹tools
实现网络请求
创建http.go
文件
package tools
import (
"crypto/tls"
"fmt"
"io/ioutil"
"net/http"
"runtime"
"strings"
)
//http get请求
func Get(geturl string) []byte {
res, err := http.Get(geturl)
if err != nil {
fmt.Println(err)
}
robots, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
fmt.Println(err)
}
return robots
}
//http post请求
func Post(posturl string, data string) []byte {
res, err := http.Post(posturl, "charset=UTF-8", strings.NewReader(data))
if err != nil {
fmt.Println(err)
}
robots, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
fmt.Println(err)
}
return robots
}
//http 带证书的post请求,证书格式为pem
func SSLPost(posturl string, data string) []byte {
fmt.Println(runtime.GOROOT())
cert, err := tls.LoadX509KeyPair(runtime.GOROOT()+"/cert.pem", runtime.GOROOT()+"/key.pem")
if err != nil {
fmt.Println(err)
}
config := tls.Config{Certificates: []tls.Certificate{cert}, InsecureSkipVerify: true}
tr := &http.Transport{
TLSClientConfig: &config,
}
client := &http.Client{Transport: tr}
res, err := client.Post(posturl, "application/x-www-form-urlencoded", strings.NewReader(data))
if err != nil {
fmt.Println(err)
}
robots, err := ioutil.ReadAll(res.Body)
res.Body.Close()
if err != nil {
fmt.Println(err)
}
return robots
}
func Parserequest(r *http.Request) []byte {
r.ParseForm()
result, _ := ioutil.ReadAll(r.Body)
return result
}
func Parseresponse(r *http.Response) []byte {
result, _ := ioutil.ReadAll(r.Body)
return result
}
不做详细解释,有不明白的可以留言