| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- package gopay
- import (
- "crypto/md5"
- "encoding/hex"
- "fmt"
- "log"
- "strconv"
- "strings"
- "testing"
- "time"
- )
- func TestWeChatClient_UnifiedOrder(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, true)
- //初始化参数Map
- body := make(BodyMap)
- body.Set("nonce_str", GetRandomString(32))
- body.Set("body", "测试支付")
- number := GetRandomString(32)
- log.Println("Number:", number)
- body.Set("out_trade_no", number)
- body.Set("total_fee", 1)
- body.Set("spbill_create_ip", "180.171.101.212")
- body.Set("notify_url", "http://www.igoogle.ink")
- body.Set("trade_type", TradeType_JsApi)
- //body.Set("device_info", "WEB")
- body.Set("sign_type", SignType_MD5)
- //body.Set("scene_info", `{"h5_info": {"type":"Wap","wap_url": "http://www.igoogle.ink","wap_name": "测试支付"}}`)
- body.Set("openid", openID)
- //请求支付下单,成功后得到结果
- wxRsp, err := client.UnifiedOrder(body)
- if err != nil {
- fmt.Println("Error:", err)
- }
- timeStamp := strconv.FormatInt(time.Now().Unix(), 10)
- //获取小程序需要的paySign
- pac := "prepay_id=" + wxRsp.PrepayId
- paySign := GetMiniPaySign(appID, wxRsp.NonceStr, pac, SignType_MD5, timeStamp, secretKey)
- fmt.Println("paySign:", paySign)
- //fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_QueryOrder(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("out_trade_no", "MfZC2segKxh0bnJSELbvKNeH3d9oWvvQ")
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_MD5)
- //请求订单查询,成功后得到结果
- wxRsp, err := client.QueryOrder(body)
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_CloseOrder(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("out_trade_no", "MfZC2segKxh0bnJSELbvKNeH3d9oWvvQ")
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_MD5)
- //请求订单查询,成功后得到结果
- wxRsp, err := client.CloseOrder(body)
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_Refund(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, true)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("out_trade_no", "MfZC2segKxh0bnJSELbvKNeH3d9oWvvQ")
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_MD5)
- s := GetRandomString(64)
- fmt.Println("s:", s)
- body.Set("out_refund_no", s)
- body.Set("total_fee", 101)
- body.Set("refund_fee", 101)
- //请求申请退款,沙箱环境下,证书路径参数可传空
- wxRsp, err := client.Refund(body, "", "", "")
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_QueryRefund(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("out_refund_no", "vk4264I1UQ3Hm3E4AKsavK8npylGSgQA092f9ckUxp8A2gXmnsLEdsupURVTcaC7")
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_MD5)
- //请求申请退款
- wxRsp, err := client.QueryRefund(body)
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_DownloadBill(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_MD5)
- body.Set("bill_date", "20190122")
- body.Set("bill_type", "ALL")
- //请求订单查询,成功后得到结果
- wxRsp, err := client.DownloadBill(body)
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_DownloadFundFlow(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_HMAC_SHA256)
- body.Set("bill_date", "20190122")
- body.Set("account_type", "Basic")
- //请求订单查询,成功后得到结果,沙箱环境下,证书路径参数可传空
- wxRsp, err := client.DownloadFundFlow(body, "", "", "")
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_BatchQueryComment(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数结构体
- body := make(BodyMap)
- body.Set("nonce_str", GetRandomString(32))
- body.Set("sign_type", SignType_HMAC_SHA256)
- body.Set("begin_time", "20190120000000")
- body.Set("end_time", "20190122174000")
- body.Set("offset", "0")
- //请求订单查询,成功后得到结果,沙箱环境下,证书路径参数可传空
- wxRsp, err := client.BatchQueryComment(body, "", "", "")
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_Micropay(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数Map
- body := make(BodyMap)
- body.Set("nonce_str", GetRandomString(32))
- body.Set("body", "扫用户付款码支付")
- number := GetRandomString(32)
- log.Println("Number:", number)
- body.Set("out_trade_no", number)
- body.Set("total_fee", 1)
- body.Set("spbill_create_ip", "124.77.173.62")
- body.Set("auth_code", "120061098828009406")
- body.Set("sign_type", SignType_MD5)
- //请求支付,成功后得到结果
- wxRsp, err := client.Micropay(body)
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestWeChatClient_Reverse(t *testing.T) {
- //初始化微信客户端
- // appId:应用ID
- // mchID:商户ID
- // secretKey:Key值
- // isProd:是否是正式环境
- client := NewWeChatClient(appID, mchID, secretKey, false)
- //初始化参数Map
- body := make(BodyMap)
- body.Set("nonce_str", GetRandomString(32))
- body.Set("out_trade_no", "6aDCor1nUcAihrV5JBlI09tLvXbUp02B")
- body.Set("sign_type", SignType_MD5)
- //请求撤销订单,成功后得到结果,沙箱环境下,证书路径参数可传空
- wxRsp, err := client.Reverse(body, "", "", "")
- if err != nil {
- fmt.Println("Error:", err)
- }
- fmt.Println("Response:", wxRsp)
- }
- func TestMd5(t *testing.T) {
- st := "appid=wxdaa2ab9ef87b5497&nonceStr=9k20rM66parD2U49&package=prepay_id=wx29164301554772fbc70d1d793335446010&signType=MD5&timeStamp=1548751382&key=GFDS8j98rewnmgl45wHTt980jg543wmg"
- hash := md5.New()
- hash.Write([]byte(st))
- sum := hash.Sum(nil)
- upper := strings.ToUpper(hex.EncodeToString(sum))
- fmt.Println(" ssad ", upper)
- }
|