130 lines
2.7 KiB
Go
130 lines
2.7 KiB
Go
package wxpaycli
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
"service/app/mix/conf"
|
|
"service/bizcommon/util"
|
|
"service/library/configcenter"
|
|
"service/library/idgenerator"
|
|
"testing"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
cfg := new(conf.ConfigSt)
|
|
err := configcenter.LoadConfig("/Users/erwin/wishpalv2/service/etc/mix/mix-local.yaml", cfg)
|
|
if err != nil {
|
|
fmt.Printf("%v\n", err)
|
|
}
|
|
|
|
err = Init(cfg.Wxpay)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
os.Exit(1)
|
|
}
|
|
m.Run()
|
|
}
|
|
|
|
func TestWxpayClient_NativePay(t *testing.T) {
|
|
cli := GetDefaultWxpayClient()
|
|
resp, err := cli.NativePay(context.Background(), &NativePayParam{
|
|
Description: "测试哈哈",
|
|
OutTradeNo: idgenerator.GenOrderId(),
|
|
TotalAmount: 1,
|
|
TimeOutSeconds: 3600 * 24,
|
|
})
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
return
|
|
}
|
|
t.Log(fmt.Sprintf("%#v", resp))
|
|
return
|
|
}
|
|
|
|
func TestWxpayClient_GetOpenIdByAuthCode(t *testing.T) {
|
|
cli := GetDefaultWxpayClient()
|
|
openid, _ := cli.GetOpenIdByAuthCode(context.Background(), "091dpIGa1VNiWG0RnnIa1wgqrW1dpIG6")
|
|
t.Log(openid)
|
|
return
|
|
}
|
|
|
|
func TestWxpayClient_JsapiPay(t *testing.T) {
|
|
cli := GetDefaultWxpayClient()
|
|
|
|
// 先获取openId
|
|
openid, err := cli.GetOpenIdByAuthCode(context.Background(), "091hyXFa1SDJXG0lBBGa1qSnw52hyXFZ")
|
|
if err != nil {
|
|
t.Log(err.Error())
|
|
return
|
|
}
|
|
|
|
// jsapi pay
|
|
p := &JsapiPayParam{
|
|
Description: "测试哈哈",
|
|
OutTradeNo: idgenerator.GenOrderId(),
|
|
TotalAmount: 1,
|
|
TimeOutSeconds: 3600 * 24,
|
|
OpenId: openid,
|
|
}
|
|
r, err := cli.JsapiPay(context.Background(), p)
|
|
if err != nil {
|
|
t.Log(err.Error())
|
|
return
|
|
}
|
|
t.Log(util.ToJson(r))
|
|
}
|
|
|
|
type Track struct {
|
|
XmlRequest string `json:"xmlRequest"`
|
|
}
|
|
|
|
func (t *Track) JSON() ([]byte, error) {
|
|
buffer := &bytes.Buffer{}
|
|
encoder := json.NewEncoder(buffer)
|
|
// encoder.SetEscapeHTML(false)
|
|
err := encoder.Encode(t)
|
|
return buffer.Bytes(), err
|
|
}
|
|
|
|
func AT() {
|
|
message := Track{}
|
|
message.XmlRequest = "<car><mirror>XML</mirror></car>"
|
|
fmt.Println("Before Marshal", message)
|
|
messageJSON, _ := message.JSON()
|
|
fmt.Println("After marshal", string(messageJSON))
|
|
}
|
|
|
|
func TestWxpayClient_H5Pay(t *testing.T) {
|
|
cli := GetDefaultWxpayClient()
|
|
|
|
resp, err := cli.H5Pay(context.Background(), &H5PayParam{
|
|
Description: "hello",
|
|
OutTradeNo: idgenerator.GenOrderId(),
|
|
TotalAmount: 1,
|
|
TimeOutSeconds: 3600 * 24,
|
|
Cip: "223.104.41.0",
|
|
})
|
|
if err != nil {
|
|
t.Log(err.Error())
|
|
return
|
|
}
|
|
t.Log(resp)
|
|
}
|
|
|
|
func TestWxpayClient_RefundOne(t *testing.T) {
|
|
cli := GetDefaultWxpayClient()
|
|
resp, err := cli.RefundOne(context.Background(), &RefundOneParam{
|
|
OutTradeNo: "1767893922425614336",
|
|
RefundAmount: 4900,
|
|
RefundReason: "用户退款",
|
|
})
|
|
if err != nil {
|
|
t.Log(err.Error())
|
|
return
|
|
}
|
|
t.Log(util.ToJson(resp))
|
|
}
|