wx_UnifiedOrder.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package wechat
  2. import (
  3. "fmt"
  4. "strconv"
  5. "time"
  6. "github.com/iGoogle-ink/gopay"
  7. )
  8. func UnifiedOrder() {
  9. //初始化微信客户端
  10. // appId:应用ID
  11. // mchId:商户ID
  12. // apiKey:API秘钥值
  13. // isProd:是否是正式环境
  14. client := gopay.NewWeChatClient("wxdaa2ab9ef87b5497", "1368139502", "GFDS8j98rewnmgl45wHTt980jg543abc", false)
  15. //设置国家
  16. client.SetCountry(gopay.China)
  17. number := gopay.GetRandomString(32)
  18. fmt.Println("out_trade_no:", number)
  19. //初始化参数Map
  20. body := make(gopay.BodyMap)
  21. body.Set("nonce_str", gopay.GetRandomString(32))
  22. body.Set("body", "H5支付")
  23. body.Set("out_trade_no", number)
  24. body.Set("total_fee", 1)
  25. body.Set("spbill_create_ip", "127.0.0.1")
  26. body.Set("notify_url", "http://www.gopay.ink")
  27. body.Set("trade_type", gopay.TradeType_H5)
  28. body.Set("device_info", "WEB")
  29. body.Set("sign_type", gopay.SignType_MD5)
  30. sceneInfo := make(map[string]map[string]string)
  31. h5Info := make(map[string]string)
  32. h5Info["type"] = "Wap"
  33. h5Info["wap_url"] = "http://www.gopay.ink"
  34. h5Info["wap_name"] = "H5测试支付"
  35. sceneInfo["h5_info"] = h5Info
  36. body.Set("scene_info", sceneInfo)
  37. //body.Set("openid", "o0Df70H2Q0fY8JXh1aFPIRyOBgu8")
  38. //请求支付下单,成功后得到结果
  39. wxRsp, err := client.UnifiedOrder(body)
  40. if err != nil {
  41. fmt.Println("Error:", err)
  42. return
  43. }
  44. fmt.Println("wxRsp:", *wxRsp)
  45. //fmt.Println("wxRsp.MwebUrl:", wxRsp.MwebUrl)
  46. timeStamp := strconv.FormatInt(time.Now().Unix(), 10)
  47. //获取小程序支付需要的paySign
  48. //pac := "prepay_id=" + wxRsp.PrepayId
  49. //paySign := gopay.GetMiniPaySign("wxdaa2ab9ef87b5497", wxRsp.NonceStr, pac, gopay.SignType_MD5, timeStamp, "GFDS8j98rewnmgl45wHTt980jg543abc")
  50. //fmt.Println("paySign:", paySign)
  51. //获取H5支付需要的paySign
  52. pac := "prepay_id=" + wxRsp.PrepayId
  53. paySign := gopay.GetH5PaySign("wxdaa2ab9ef87b5497", wxRsp.NonceStr, pac, gopay.SignType_MD5, timeStamp, "GFDS8j98rewnmgl45wHTt980jg543abc")
  54. fmt.Println("paySign:", paySign)
  55. //获取小程序需要的paySign
  56. //paySign := gopay.GetAppPaySign("wxdaa2ab9ef87b5497","", wxRsp.NonceStr, wxRsp.PrepayId, gopay.SignType_MD5, timeStamp, "GFDS8j98rewnmgl45wHTt980jg543abc")
  57. //fmt.Println("paySign:", paySign)
  58. }