wechat_notify.go 1005 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //==================================
  2. // * Name:Jerry
  3. // * Tel:18017448610
  4. // * DateTime:2019/1/28 20:16
  5. //==================================
  6. package gopay
  7. import (
  8. "bytes"
  9. "encoding/xml"
  10. "net/http"
  11. )
  12. //解析支付完成后的回调信息
  13. func ParseNotifyResult(req *http.Request) (notifyRsp *WeChatNotifyRequest, err error) {
  14. notifyRsp = new(WeChatNotifyRequest)
  15. defer req.Body.Close()
  16. err = xml.NewDecoder(req.Body).Decode(notifyRsp)
  17. if err != nil {
  18. return nil, err
  19. }
  20. return
  21. }
  22. type WeChatNotifyResponse struct {
  23. ReturnCode string `xml:"return_code"`
  24. ReturnMsg string `xml:"return_msg"`
  25. }
  26. func (this *WeChatNotifyResponse) ToXmlString() (xmlStr string) {
  27. buffer := new(bytes.Buffer)
  28. buffer.WriteString("<xml><return_code><![CDATA[")
  29. buffer.WriteString(this.ReturnCode)
  30. buffer.WriteString("]]></return_code>")
  31. buffer.WriteString("<return_msg><![CDATA[")
  32. buffer.WriteString(this.ReturnMsg)
  33. buffer.WriteString("]]></return_msg></xml>")
  34. xmlStr = buffer.String()
  35. return
  36. }