verify_ticket.go 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * Copyright (c) 2022 Yansen Zhang
  3. * wxcomponent is licensed under Mulan PSL v2.
  4. * You can use this software according to the terms and conditions of the Mulan PSL v2.
  5. * You may obtain a copy of Mulan PSL v2 at:
  6. * http://license.coscl.org.cn/MulanPSL2
  7. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
  8. * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
  9. * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
  10. * See the Mulan PSL v2 for more details.
  11. **/
  12. package authorization
  13. import (
  14. "encoding/xml"
  15. "gitee.com/yansen_zh/wxcomponent/utils/encrypt"
  16. )
  17. // VerifyTicketResult 获取验证票据结果
  18. type VerifyTicketResult struct {
  19. AppId string `xml:"AppId"`
  20. CreateTime int64 `xml:"CreateTime"`
  21. InfoType string `xml:"InfoType"`
  22. ComponentVerifyTicket string `xml:"ComponentVerifyTicket"`
  23. }
  24. // ParseVerifyTicket 获取验证票据
  25. func ParseVerifyTicket(data, key []byte) (*VerifyTicketResult, error) {
  26. bt, err := encrypt.MsgDecode(data, key)
  27. if nil != err {
  28. return nil, err
  29. }
  30. res := VerifyTicketResult{}
  31. if e := xml.Unmarshal(bt, &res); e != nil {
  32. return nil, e
  33. }
  34. return &res, nil
  35. }