Documentation ¶
Index ¶
- Constants
- func DecryptAES256GCM(aesKey, associatedData, nonce, ciphertext string) (dataBytes []byte, err error)
- func Random(n int) string
- func Sign(req map[string]interface{}, key string) (sign string)
- type ArticleItem
- type Client
- func (wc Client) CreateMenu(menu FormMenu) (err error)
- func (wc Client) GetCodeURL(redirectURL, state string) (uri string)
- func (wc Client) GetMaterial(mtype string, offset, count int) (material Material, err error)
- func (wc Client) GetMenu() (menu Menu, err error)
- func (wc Client) GetOpenID(code string) (jq *myth.JSONQuery, err error)
- func (wc Client) GetSignPackage(uri, nonceStr string) (sign SignPackage, err error)
- func (wc Client) GetUserInfo(openid string) (info UserInfo, err error)
- func (wc Client) GetUserInfoCodeURL(redirectURL, state string) (uri string)
- func (wc Client) GetUserList(nextOpenID string) (list UserList, err error)
- func (wc Client) SendTemplateMessage(template TemplateMessage) (res TemplateResponse, err error)
- func (wc Client) SendTemplateMessageX(data []byte) (res TemplateResponse, err error)
- func (wc Client) TemplateMessageReslut(jq *myth.JSONQuery) (code int, id int64, err error)
- func (wc *Client) TokenUseCache(ok bool)
- func (wc *Client) UpdateTicket() (ticket string, err error)
- func (wc *Client) UpdateToken() (token string, err error)
- type ClientTicket
- type ClientToken
- type EventTemplateReply
- type FormAuthorize
- type FormCode
- type FormMaterial
- type FormMenu
- type FormMenuButton
- type FormNextOpenID
- type FormOpenID
- type FormPayNotify
- type FormSignPackage
- type FormSignature
- type FormURLState
- type List
- type Material
- type MaterialContent
- type MaterialItem
- type MaterialNewsItem
- type Menu
- type Message
- type MiniClient
- func (mc *MiniClient) GetMiniOpenID(frm FormCode) (s MiniSession, err error)
- func (mc *MiniClient) GetPhoneInfo(frm FormCode) (res MiniPhoneInfo, err error)
- func (mc *MiniClient) TemplateList(offset, count int) (body []byte, err error)
- func (mc *MiniClient) TemplateSend(template MiniTemplateMessage) (jq *myth.JSONQuery, err error)
- func (mc *MiniClient) TokenKey() string
- func (mc *MiniClient) UniformSend(template MiniUniformMessage) (jq *myth.JSONQuery, err error)
- func (mc *MiniClient) UpdateToken() (token string, err error)
- type MiniPhoneInfo
- type MiniProgramPage
- type MiniSession
- type MiniTemplateMessage
- type MiniUniformMessage
- type MpTemplateMessage
- type PayConfig
- type PayOrderAmountV3
- type PayOrderInfoV3
- type PayOrderPayerV3
- type PayOrderQuery
- type PayRefundAmountV3
- type PayRefundInfoV3
- type PayReply
- type PayResultNotifyV3
- type PayResultNotifyV3Resource
- type PayScoreParkingNotifyV3Result
- type PayUnifiedOrder
- type ReplyMessage
- type ResponseMsg
- type Server
- type SignPackage
- type TemplateData
- type TemplateMessage
- type TemplateResponse
- type UserInfo
- type UserList
- type ValueColor
- type WeappTemplateMessage
- type WepayResponseDetail
- type WepayResponseMessageV3
Constants ¶
const ( // TokenExpires token expires time 1 hours TokenExpires = 90 * 60 // TicketExpires ticket expires time 1 hours TicketExpires = 60 * 60 // BaseURL api host BaseURL = `https://api.weixin.qq.com` // OpenURL open host OpenURL = `https://open.weixin.qq.com` // PayHost pay base host PayHost = `https://api.mch.weixin.qq.com` // ErrReqOk request ok ErrReqOk = 0 // PayURLUnifiedOrder pay 付款 PayURLUnifiedOrder = `/pay/unifiedorder` // PayURLPayRefund pay refund 退款 PayURLPayRefund = `/secapi/pay/refund` // PayURLPapPay 委托代扣申请扣款 PayURLPapPay = `/pay/pappayapply` // PayURLPapayEntrust H5 纯签约 PayURLPapayEntrust = `/papay/h5entrustweb` // PayTradeTypeJS JSAPI 公众号支付 PayTradeTypeJS = `JSAPI` // PayTradeTypeNative NATIVE 扫码支付 PayTradeTypeNative = `NATIVE` // PayTradeTypeAPP APP APP支付 PayTradeTypeAPP = `APP` // MsgText text message MsgText = `text` // MsgImage image message MsgImage = `image` // MsgVoice voice message MsgVoice = `voice` // MsgVideo video message MsgVideo = `video` // MsgShortVideo shortvideo message MsgShortVideo = `shortvideo` // MsgLocation location message MsgLocation = `location` // MsgLink link message MsgLink = `link` // MsgNews news MsgNews = `news` // MsgMusic music MsgMusic = `music` // MsgEvent event MsgEvent = `event` // MsgEventSubscribe subscribe 订阅 MsgEventSubscribe = `subscribe` // MsgEventUnSubscribe unsubscribe 取消订阅 MsgEventUnSubscribe = `unsubscribe` // MsgEventSCAN 已关注用户扫码事件 MsgEventSCAN = `SCAN` // MsgEventLOCATION 上报地理位置事件 MsgEventLOCATION = `LOCATION` // MsgEventCLICK 自定义菜单点击事件 MsgEventCLICK = `CLICK` // MsgEventVIEW 点击自定义菜单跳转链接时的事件 MsgEventVIEW = `VIEW` // MsgEventTEMPLATESENDJOBFINISH 模版消息发送任务结果事件 MsgEventTEMPLATESENDJOBFINISH = `TEMPLATESENDJOBFINISH` )
Variables ¶
This section is empty.
Functions ¶
func DecryptAES256GCM ¶
func DecryptAES256GCM(aesKey, associatedData, nonce, ciphertext string) (dataBytes []byte, err error)
DecryptAES256GCM 使用 AEAD_AES_256_GCM 算法进行解密
Types ¶
type ArticleItem ¶
type ArticleItem struct { Title string `xml:"Title" json:"Title"` Description string `xml:"Description" json:"Description"` PicURL string `xml:"PicUrl" json:"PicUrl"` URL string `xml:"Url" json:"Url"` }
ArticleItem article item
type Client ¶
type Client struct { AppID string `json:"appid"` AppSecret string `json:"appsecret"` Token string `json:"token"` EncodingAESKey string `json:"encodingaeskey"` //ReadLock *sync.Mutex UseCacheToken bool AccessToken string LastTokenTime int64 TokenFromCache bool Ticket string LastTicketTime int64 }
Client wechat
func (Client) CreateMenu ¶
CreateMenu 创建自定义菜单
func (Client) GetCodeURL ¶
GetCodeURL get code 授权获取 OpenID URL(静默授权) /connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect 转向到 redirect_uri/?code=CODE&state=STATE
func (Client) GetMaterial ¶
GetMaterial 永久资料
func (Client) GetOpenID ¶
GetOpenID 获取 OpenID /sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
func (Client) GetSignPackage ¶
func (wc Client) GetSignPackage(uri, nonceStr string) (sign SignPackage, err error)
GetSignPackage JS 签名
uri 当前 URL nonceStr 随机字符串
func (Client) GetUserInfo ¶
GetUserInfo user info
func (Client) GetUserInfoCodeURL ¶
GetUserInfoCodeURL get code 授权获取 OpenID URL /connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 转向到 redirect_uri/?code=CODE&state=STATE
func (Client) GetUserList ¶
GetUserList user list
func (Client) SendTemplateMessage ¶
func (wc Client) SendTemplateMessage(template TemplateMessage) (res TemplateResponse, err error)
SendTemplateMessage send template message POST /cgi-bin/message/template/send?access_token=ACCESS_TOKEN
func (Client) SendTemplateMessageX ¶
func (wc Client) SendTemplateMessageX(data []byte) (res TemplateResponse, err error)
SendTemplateMessageX 发送自定义模版消息
func (Client) TemplateMessageReslut ¶
TemplateMessageReslut template message reslut
func (*Client) TokenUseCache ¶
TokenUseCache token from cache
func (*Client) UpdateTicket ¶
更新公众号 js ticket
func (*Client) UpdateToken ¶
更新公众号 access_token
type ClientTicket ¶
type ClientTicket struct { AppID string `json:"appid"` Ticket string `json:"ticket"` LastTicketTime int64 `json:"last_token_time"` }
ClientTicket wechat client js ticket
type ClientToken ¶
type ClientToken struct { AppID string `json:"appid"` AccessToken string `json:"access_token"` LastTokenTime int64 `json:"last_token_time"` }
ClientToken wechat client token
type EventTemplateReply ¶
type EventTemplateReply struct { XMLName xml.Name `xml:"xml"` ToUserName string `xml:"ToUserName"` FromUserName string `xml:"FromUserName"` CreateTime string `xml:"CreateTime"` MsgType string `xml:"MsgType"` Event string `xml:"Event"` MsgID string `xml:"MsgID"` Status string `xml:"Status"` }
EventTemplateReply event reply
type FormAuthorize ¶
type FormAuthorize struct { Code string `form:"code"` State string `form:"state"` URL string `form:"url"` }
FormAuthorize get code
type FormMaterial ¶
type FormMaterial struct { Type string `form:"type"` Offset int `form:"offset"` Count int `form:"count"` }
FormMaterial Material
type FormMenu ¶
type FormMenu struct {
Button []*FormMenuButton `json:"button"`
}
FormMenu menu create
type FormMenuButton ¶
type FormMenuButton struct { Type string `json:"type,omitempty"` Name string `json:"name"` Key string `json:"key,omitempty"` URL string `json:"url,omitempty"` AppID string `json:"appid,omitempty"` Pagepath string `json:"pagepath,omitempty"` MediaID string `json:"media_id,omitempty"` SubButton []*FormMenuButton `json:"sub_button,omitempty"` }
FormMenuButton menu button
type FormNextOpenID ¶
type FormNextOpenID struct {
Next string `form:"next_openid"`
}
FormNextOpenID next openid
type FormPayNotify ¶
type FormPayNotify struct { XMLName xml.Name `xml:"xml" json:"_,omitempty"` AppID string `form:"appid" xml:"appid"` Attach string `form:"attach" xml:"attach"` BankType string `form:"bank_type" xml:"bank_type"` CashFee int `form:"cash_fee" xml:"cash_fee"` FeeType string `form:"fee_type" xml:"fee_type"` MchID string `form:"mch_id" xml:"mch_id"` IsSubscribe string `form:"is_subscribe" xml:"is_subscribe"` NonceStr string `form:"nonce_str" xml:"nonce_str"` OpenID string `form:"openid" xml:"openid"` OutTradeNo string `form:"out_trade_no" xml:"out_trade_no"` ResultCode string `form:"result_code" xml:"result_code"` ReturnMsg string `form:"return_msg" xml:"return_msg"` ReturnCode string `form:"return_code" xml:"return_code"` ErrCodeDes string `form:"err_code_des" xml:"err_code_des"` ErrCode string `form:"err_code" xml:"err_code"` Sign string `form:"sign" xml:"sign"` TimeEnd string `form:"time_end" xml:"time_end"` TotalFee int `form:"total_fee" xml:"total_fee"` TradeType string `form:"trade_type" xml:"trade_type"` TransactionID string `form:"transaction_id" xml:"transaction_id"` ContractID string `form:"contract_id" xml:"contract_id"` }
FormPayNotify notify
type FormSignPackage ¶
type FormSignPackage struct {
URL string `form:"url"`
}
FormSignPackage js sign package
type FormSignature ¶
type FormSignature struct { TimeStamp string `form:"timestamp" json:"timestamp"` Nonce string `form:"nonce" json:"nonce"` Signature string `form:"signature" json:"signature"` Echostr string `form:"echostr" json:"echostr"` }
FormSignature signature
type FormURLState ¶
type FormURLState struct { RedirectURL string `form:"url" json:"url" xml:"url"` State string `form:"state" json:"state" xml:"state"` }
FormURLState redirect url and state
type Material ¶
type Material struct { TotalCount int `json:"total_count"` ItemCount int `json:"item_count"` Item []MaterialItem `json:"item"` }
Material 素材
type MaterialContent ¶
type MaterialContent struct { NewsItem []*MaterialNewsItem `json:"news_item,omitempty"` CreateTime int `json:"create_time,omitempty"` UpdateTime int `json:"update_time,omitempty"` }
MaterialContent 素材内容
type MaterialItem ¶
type MaterialItem struct { MediaID string `json:"media_id"` Name string `json:"name,omitempty"` UpdateTime int `json:"update_time"` URL string `json:"url,omitempty"` Content *MaterialContent `json:"content,omitempty"` }
MaterialItem 素材信息
type MaterialNewsItem ¶
type MaterialNewsItem struct { Title string `json:"title"` Author string `json:"author"` Digest string `json:"digest"` Content string `json:"content"` ContentSourceURL string `json:"content_source_url"` ThumbMediaID string `json:"thumb_media_id"` ShowCoverPic int `json:"show_cover_pic"` URL string `json:"url"` ThumbURL string `json:"thumb_url"` NeedOpenComment int `json:"need_open_comment"` OnlyFansCanComment int `json:"only_fans_can_comment"` }
MaterialNewsItem 图片素材
type Menu ¶
type Menu struct { IsOpen int64 `json:"is_menu_open"` Info menuInfo `json:"selfmenu_info"` }
Menu menu
type Message ¶
type Message struct { XMLName xml.Name `xml:"xml"` ToUserName string `xml:"ToUserName" json:"ToUserName"` FromUserName string `xml:"FromUserName" json:"FromUserName"` CreateTime int64 `xml:"CreateTime" json:"CreateTime"` MsgType string `xml:"MsgType" json:"MsgType"` // text/image/voice/video/shortvideo/location/link // 文本 Text Text message Text string `xml:"Content,omitempty" json:"Content,omitempty"` // 图片 PicURL / MediaID image messgae PicURL string `xml:"PicUrl,omitempty" json:"PicUrl,omitempty"` // MediaID 媒体 MediaID string `xml:"MediaId,omitempty" json:"MediaId,omitempty"` // 语音 MediaID / Format voice message Format string `xml:"Format,omitempty" json:"Format,omitempty"` // 视频/小视频 ThumbMediaID / MediaID video/shortvideo message ThumbMediaID string `xml:"ThumbMediaId,omitempty" json:"ThumbMediaId,omitempty"` // 地理位置 location message LocationX string `xml:"Location_X,omitempty" json:"Location_X,omitempty"` // 纬度 LocationY string `xml:"Location_Y,omitempty" json:"Location_Y,omitempty"` // 经度 Scale string `xml:"Scale,omitempty" json:"Scale,omitempty"` // 地图缩放大小 Label string `xml:"Label,omitempty" json:"Label,omitempty"` // 地理位置信息 // 链接消息 link Title string `xml:"Title,omitempty" json:"Title,omitempty"` // 消息标题 Description string `xml:"Description,omitempty" json:"Description,omitempty"` // 消息描述 URL string `xml:"Url,omitempty" json:"Url,omitempty"` // 消息链接 Event string `xml:"Event,omitempty" json:"Event,omitempty"` // 事件 subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单事件)、SCAN // 扫描带参数二维码事件 EventKey string `xml:"EventKey,omitempty" json:"EventKey,omitempty"` // 事件KEY 值,扫码未关注的 qrscene_ 为前缀(subscribe 事件, 已关注的推送 SCAN 事件),后面为二维码的参数值, 自定义菜单事件与自定义菜单接口中 KEY 值对应 Ticket string `xml:"Ticket,omitempty" json:"Ticket,omitempty"` // 二维码的ticket,可用来换取二维码图片 // 地理位置 location message Latitude string `xml:"Latitude,omitempty" json:"Latitude,omitempty"` // 纬度 Longitude string `xml:"Longitude,omitempty" json:"Longitude,omitempty"` // 经度 Precision string `xml:"Precision,omitempty" json:"Precision,omitempty"` // 地理位置精度 MsgID int64 `xml:"MsgID,omitempty" json:"MsgID,omitempty"` // 消息id Status string `xml:"Status,omitempty" json:"Status,omitempty"` // 消息发送状态 }
Message message
type MiniClient ¶
type MiniClient struct { AppID string `json:"appid"` AppSecret string `json:"appsecret"` UseCacheToken bool AccessToken string LastTokenTime int64 }
MiniClient wechat mini
func NewMiniClient ¶
func NewMiniClient(appID, appSecret string) *MiniClient
NewMiniClient new mini client
func (*MiniClient) GetMiniOpenID ¶
func (mc *MiniClient) GetMiniOpenID(frm FormCode) (s MiniSession, err error)
GetMiniOpenID get openid by code
func (*MiniClient) GetPhoneInfo ¶
func (mc *MiniClient) GetPhoneInfo(frm FormCode) (res MiniPhoneInfo, err error)
GetPhoneInfo 获取手机信息 /wxa/business/getuserphonenumber
func (*MiniClient) TemplateList ¶
func (mc *MiniClient) TemplateList(offset, count int) (body []byte, err error)
TemplateList /cgi-bin/wxopen/template/list
func (*MiniClient) TemplateSend ¶
func (mc *MiniClient) TemplateSend(template MiniTemplateMessage) (jq *myth.JSONQuery, err error)
TemplateSend /cgi-bin/message/wxopen/template/send
func (*MiniClient) UniformSend ¶
func (mc *MiniClient) UniformSend(template MiniUniformMessage) (jq *myth.JSONQuery, err error)
UniformSend /cgi-bin/message/wxopen/template/uniform_send
func (*MiniClient) UpdateToken ¶
func (mc *MiniClient) UpdateToken() (token string, err error)
type MiniPhoneInfo ¶
type MiniPhoneInfo struct { ResponseMsg PhoneInfo struct { PhoneNumber string `json:"phoneNumber"` PurePhoneNumber string `json:"purePhoneNumber"` CountryCode string `json:"countryCode"` Watermark struct { Timestamp int64 `json:"timestamp"` AppID string `json:"appid"` } `json:"watermark"` } `json:"phone_info"` }
MiniPhoneInfo 手机信息
type MiniProgramPage ¶
type MiniProgramPage struct { AppID string `json:"appid,omitempty"` PagePath string `json:"pagepath,omitempty"` }
MiniProgramPage mini
type MiniSession ¶
type MiniSession struct { OpenID string `json:"openid"` SessionKey string `json:"session_key"` UnionID string `json:"unionid"` }
MiniSession mini session
type MiniTemplateMessage ¶
type MiniTemplateMessage struct { ToUser string `json:"touser"` TemplateID string `json:"template_id"` Page string `json:"page"` FormID string `json:"form_id"` Data TemplateData `json:"data"` }
MiniTemplateMessage mini template message
type MiniUniformMessage ¶
type MiniUniformMessage struct { ToUser string `json:"touser"` WeApp *WeappTemplateMessage `json:"weapp_template_msg,omitempty"` MP *MpTemplateMessage `json:"mp_template_msg,omitempty"` }
MiniUniformMessage mini uniform send
type MpTemplateMessage ¶
type MpTemplateMessage struct { AppID string `json:"appid"` TemplateID string `json:"template_id"` URL string `json:"url"` Mini MiniProgramPage `json:"miniprogram"` Data TemplateData `json:"data"` }
MpTemplateMessage wechat public message
type PayConfig ¶
type PayConfig struct { AppID string `json:"appid"` MchID string `json:"mchid"` Key string `json:"key"` AppSecret string `json:"appsecret"` SSLCert string `json:"sslcert"` SSLKey string `json:"sslkey"` ContractID string `json:"contractid"` NotifyURL string `json:"notify_url"` }
PayConfig WeChat pay configure
type PayOrderAmountV3 ¶
type PayOrderAmountV3 struct { // Total 总金额 订单总金额,单位为分 Total int `json:"total"` // PayerTotal 用户支付金额 用户支付金额,单位为分。(指使用优惠券的情况下,这里等于总金额-优惠券金额) PayerTotal int `json:"payer_total"` // Currency 货币类型 CNY:人民币,境内商户号仅支持人民币 Currency string `json:"currency"` // PayerCurrency 用户支付币种 PayerCurrency string `json:"payer_currency"` }
PayOrderAmountV3 微信支付 V3 支付订单支金额信息
type PayOrderInfoV3 ¶
type PayOrderInfoV3 struct { // MchID 直连商户号 直连商户的商户号,由微信支付生成并下发 MchID string `json:"mchid"` // AppID 应用ID 直连商户申请的公众号或移动应用appid AppID string `json:"appid"` // OutTradeNo 商户订单号 户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一 OutTradeNo string `json:"out_trade_no"` // TransactionID 微信支付订单号 微信支付系统生成的订单号 TransactionID string `json:"transaction_id"` // TradeType 交易类型 枚举值: // JSAPI:公众号支付 // NATIVE:扫码支付 // APP:APP支付 // MICROPAY:付款码支付 // MWEB:H5支付 // FACEPAY:刷脸支付 TradeType string `json:"trade_type"` // TradeState 交易状态 枚举值: // SUCCESS:支付成功 // REFUND:转入退款 // NOTPAY:未支付 // CLOSED:已关闭 // REVOKED:已撤销(仅付款码支付会返回) // USERPAYING:用户支付中(仅付款码支付会返回) // PAYERROR:支付失败(仅付款码支付会返回) TradeState string `json:"trade_state"` // TradeStateDesc 交易状态描述 TradeStateDesc string `json:"trade_state_desc"` // BankType 付款银行 银行类型,采用字符串类型的银行标识 BankType string `json:"bank_type"` // Attach 附加数据 在查询API和支付通知中原样返回,可作为自定义参数使用,实际情况下只有支付完成状态才会返回该字段 Attach string `json:"attach"` // SuccessTime 支付完成时间 支付完成时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE SuccessTime time.Time `json:"success_time"` // Payer 支付者信息 Payer PayOrderPayerV3 `json:"payer"` // Amount 订单金额信息,当支付成功时返回该字段 Amount PayOrderAmountV3 `json:"amount"` }
PayOrderInfoV3 微信支付 V3 支付订单信息
func (*PayOrderInfoV3) IsTradeSuccess ¶
func (r *PayOrderInfoV3) IsTradeSuccess() bool
IsTradeSuccess 是否支付成功
func (*PayOrderInfoV3) Unmarshal ¶
func (r *PayOrderInfoV3) Unmarshal(body []byte) (err error)
Unmarshal 解析结构
type PayOrderPayerV3 ¶
type PayOrderPayerV3 struct { // OpenID 用户标识 用户在直连商户appid下的唯一标识 OpenID string `json:"openid"` }
PayOrderPayerV3 微信支付 V3 支付订单支付人信息
type PayOrderQuery ¶
type PayOrderQuery struct { XMLName xml.Name `xml:"xml"` AppID string `xml:"appid"` MchID string `xml:"mch_id"` NonceStr string `xml:"nonce_str"` TransactionID string `xml:"transaction_id,omitempty"` OutTradeNo string `xml:"out_trade_no,omitempty"` Sign string `xml:"sign"` }
PayOrderQuery https://api.mch.weixin.qq.com/pay/orderquery
type PayRefundAmountV3 ¶
type PayRefundAmountV3 struct { // Total 总金额 订单总金额,单位为分 Total int `json:"total"` // Refund 退款金额,币种的最小单位,只能为整数,不能超过原订单支付金额,如果有使用券,后台会按比例退。 Refund int `json:"refund"` // PayerTotal 用户支付金额 用户实际支付金额,单位为分,只能为整数 PayerTotal int `json:"payer_total"` // PayerRefund 用户退款金额 退款给用户的金额,不包含所有优惠券金额 PayerRefund int `json:"payer_refund"` }
PayRefundAmountV3 微信支付 V3 退款订单支金额信息
type PayRefundInfoV3 ¶
type PayRefundInfoV3 struct { // MchID 直连商户号 直连商户的商户号,由微信支付生成并下发 MchID string `json:"mchid"` // 商户订单号 OutTradeNo string `json:"out_trade_no"` // 微信支付订单号 TransactionID string `json:"transaction_id"` // 商户退款单号 OutRefundNo string `json:"out_refund_no"` // 微信支付退款单号 RefundID string `json:"refund_id"` // 退款状态,枚举值: // SUCCESS:退款成功 // CLOSED:退款关闭 // ABNORMAL:退款异常 RefundStatus string `json:"refund_status"` // 退款成功时间 // 1、退款成功时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日13点29分35秒。 // 2、当退款状态为退款成功时返回此参数 SuccessTime string `json:"success_time"` // 退款入账账户 取当前退款单的退款入账方。 // 1、退回银行卡:{银行名称}{卡类型}{卡尾号} // 2、退回支付用户零钱: 支付用户零钱 // 3、退还商户: 商户基本账户、商户结算银行账户 // 4、退回支付用户零钱通:支付用户零钱通 UserReceivedAccount string `json:"user_received_account"` // 金额信息 Amount PayRefundAmountV3 `json:"amount"` }
PayRefundInfoV3 微信支付 V3 退款通知订单信息
func (*PayRefundInfoV3) Unmarshal ¶
func (r *PayRefundInfoV3) Unmarshal(body []byte) (err error)
Unmarshal 解析结构
type PayReply ¶
type PayReply struct { XMLName xml.Name `xml:"xml" json:"_,omitempty"` ReturnCode string `xml:"return_code"` ReturnMsg string `xml:"return_msg"` AppID string `xml:"appid"` MchID string `xml:"mch_id"` NonceStr string `xml:"nonce_str"` Sign string `xml:"sign"` ResultCode string `xml:"result_code"` PrePayID string `xml:"prepay_id"` TradeType string `xml:"trade_type"` URL string `xml:"code_url"` ErrCode string `xml:"err_code"` ErrCodeDes string `xml:"err_code_des"` OpenID string `xml:"openid"` Attach string `xml:"attach"` IsSubscribe string `xml:"is_subscribe"` BankType string `xml:"bank_type"` CashFee string `xml:"cash_fee"` FeeType string `xml:"fee_type"` OutTradeNo string `xml:"out_trade_no"` TimeEnd string `xml:"time_end"` TotalFee string `xml:"total_fee"` TradeState string `xml:"trade_state"` TradeStateDesc string `xml:"trade_state_desc"` TransactionID string `xml:"transaction_id"` ContractID string `form:"contract_id" xml:"contract_id"` }
PayReply pay reply
type PayResultNotifyV3 ¶
type PayResultNotifyV3 struct { // 通知ID ID string `json:"id"` // 通知创建的时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE CreateTime time.Time `json:"create_time"` // 知的资源数据类型,支付成功通知为encrypt-resource ResourceType string `json:"resource_type"` // 通知的类型,支付成功通知的类型为TRANSACTION.SUCCESS 通 EventType string `json:"event_type"` // 回调摘要 示例值:支付成功 Summary string `json:"summary"` // 通知资源数据 Resource PayResultNotifyV3Resource `json:"resource"` }
PayResultNotifyV3 微信支付 V3 支付通知数据结构
func (*PayResultNotifyV3) IsEntranceStateChange ¶
func (r *PayResultNotifyV3) IsEntranceStateChange() bool
IsEntranceStateChange 是否微信支付分停车 状态变更通知
func (*PayResultNotifyV3) IsTransactionSuccess ¶
func (r *PayResultNotifyV3) IsTransactionSuccess() bool
IsTransactionSuccess 是否支付到账通知
func (*PayResultNotifyV3) Unmarshal ¶
func (r *PayResultNotifyV3) Unmarshal(body []byte) (err error)
Unmarshal 解析结构
type PayResultNotifyV3Resource ¶
type PayResultNotifyV3Resource struct { // 原始类型 原始回调类型,为transaction OriginalType string `json:"original_type"` // 加密算法类型 对开启结果数据进行加密的加密算法,目前只支持AEAD_AES_256_GCM Algorithm string `json:"algorithm"` // 数据密文 Base64编码后的开启/停用结果数据密文 Ciphertext string `json:"ciphertext"` // 附加数据 AssociatedData string `json:"associated_data"` // 随机串 加密使用的随机串 Nonce string `json:"nonce"` }
PayResultNotifyV3Resource 微信支付 V3 支付通知 resource 数据结构
type PayScoreParkingNotifyV3Result ¶
type PayScoreParkingNotifyV3Result struct { // 调用接口提交的商户号 MchID string `json:"sp_mchid"` // 调用接口提交的子商户号 SubMchID string `json:"sub_mchid"` // 车主服务为商户分配的入场ID ParkingID string `json:"parking_id"` // 商户侧入场标识ID,在同一个商户号下唯一 OutParkingNo string `json:"out_parking_no"` // 车牌号,仅包括省份+车牌,不包括特殊字符。 PlateNumber string `json:"plate_number"` // 车牌颜色,枚举值: // BLUE:蓝色 // GREEN:绿色 // YELLOW:黄色 // BLACK:黑色 // WHITE:白色 // LIMEGREEN:黄绿色 PlateColor string `json:"plate_color"` // 入场时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。 StartTime time.Time `json:"start_time"` // 所在停车位车场的名称 ParkingName string `json:"parking_name"` // 停车场的免费停车时长 FreeDuration int `json:"free_duration"` // 本次入场车牌的服务状态 // NORMAL:正常状态,可以使用车主服务 // BLOCKED:不可用状态,暂时不可以使用车主服务 ParkingState string `json:"parking_state"` // 不可用服务状态描述,返回车牌状态为BLOCKED,会返回该字段,描述具体BLOCKED的原因, // PAUSE:已暂停车主服务; // OVERDUE:已授权签约但欠费,不能提供服务,商户提示用户进行还款, // REMOVE:用户移除车牌导致车牌不可用。请跳转到授权/开通接口。 BlockedStateDescription string `json:"blocked_state_description"` // 状态变更的发生时间(毫秒级),遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。 StateUpdateTime time.Time `json:"state_update_time"` }
PayScoreParkingNotifyV3Result 微信支付分停车 状态变更通知
func (*PayScoreParkingNotifyV3Result) String ¶
func (r *PayScoreParkingNotifyV3Result) String() (s string)
Unmarshal 解析结构
func (*PayScoreParkingNotifyV3Result) Unmarshal ¶
func (r *PayScoreParkingNotifyV3Result) Unmarshal(body []byte) (err error)
Unmarshal 解析结构
type PayUnifiedOrder ¶
type PayUnifiedOrder struct { XMLName xml.Name `xml:"xml"` AppID string `xml:"appid"` MchID string `xml:"mch_id"` Body string `xml:"body"` NonceStr string `xml:"nonce_str"` NotifyURL string `xml:"notify_url"` TradeType string `xml:"trade_type"` OpenID string `xml:"openid"` SpbillCreateIP string `xml:"spbill_create_ip"` TimeStart string `xml:"time_start"` TotalFee int `xml:"total_fee"` OutTradeNo string `xml:"out_trade_no"` Attach string `xml:"attach"` Sign string `xml:"sign"` }
PayUnifiedOrder https://api.mch.weixin.qq.com/pay/unifiedorder
type ReplyMessage ¶
type ReplyMessage struct { XMLName xml.Name `xml:"xml"` ToUserName string `xml:"ToUserName" json:"ToUserName"` FromUserName string `xml:"FromUserName" json:"FromUserName"` CreateTime int64 `xml:"CreateTime" json:"CreateTime"` MsgType string `xml:"MsgType" json:"MsgType"` // text/image/voice/video/music/news // 文本 Content Text message Content string `xml:"Content,omitempty" json:"Content,omitempty"` // image ArticleCount int `xml:"ArticleCount,omitempty" json:"ArticleCount,omitempty"` Articles *articleItems `xml:"Articles,omitempty" json:"Articles,omitempty"` }
ReplyMessage reply message
func ReplyNews ¶
func ReplyNews(msg Message, items []ArticleItem) (reply ReplyMessage)
ReplyNews 回复图文信息
func (ReplyMessage) ToXML ¶
func (m ReplyMessage) ToXML() (data []byte, err error)
ToXML reply message to xml
type ResponseMsg ¶
ResponseMsg response
type Server ¶
type Server struct { AppID string `json:"appid"` AppSecret string `json:"appsecret"` Token string `json:"token"` EncodingAESKey string `json:"encodingaeskey"` }
Server wechat
type SignPackage ¶
type SignPackage struct { AppID string `json:"appId"` NonceStr string `json:"nonceStr"` Timestamp int64 `json:"timestamp"` Signature string `json:"signature"` Ticket string `json:"ticket"` URL string `json:"url"` }
SignPackage sign package
type TemplateData ¶
type TemplateData struct { First *ValueColor `json:"first"` Keyword1 *ValueColor `json:"keyword1,omitempty"` Keyword2 *ValueColor `json:"keyword2,omitempty"` Keyword3 *ValueColor `json:"keyword3,omitempty"` Keyword4 *ValueColor `json:"keyword4,omitempty"` Keyword5 *ValueColor `json:"keyword5,omitempty"` Keyword6 *ValueColor `json:"keyword6,omitempty"` Keyword7 *ValueColor `json:"keyword7,omitempty"` Keyword8 *ValueColor `json:"keyword8,omitempty"` Keyword9 *ValueColor `json:"keyword9,omitempty"` Keyword10 *ValueColor `json:"keyword10,omitempty"` Name *ValueColor `json:"name,omitempty"` ExpDate *ValueColor `json:"expDate,omitempty"` Remark *ValueColor `json:"remark,omitempty"` }
TemplateData data
type TemplateMessage ¶
type TemplateMessage struct { ToUser string `json:"touser"` TemplateID string `json:"template_id"` URL string `json:"url"` MiniProgram *MiniProgramPage `json:"miniprogram,omitempty"` Data TemplateData `json:"data"` }
TemplateMessage template message
type TemplateResponse ¶
type TemplateResponse struct { ResponseMsg MessageID int64 `json:"msgid"` }
TemplateResponse 模版消息返回
type UserInfo ¶
type UserInfo struct { SubScribe int `json:"subscribe"` OpenID string `json:"openid"` NickName string `json:"nickname"` Sex int `json:"sex"` Language string `json:"language"` City string `json:"city"` Province string `json:"province"` Country string `json:"country"` HeadImgURL string `json:"headimgurl"` SubscribeTime int `json:"subscribe_time"` UnionID string `json:"unionid"` Remark string `json:"remark"` GroupID int `json:"groupid"` TagidList []int `json:"tagid_list"` SubscribeScene string `json:"subscribe_scene"` QrScene int `json:"qr_scene"` QrSceneStr string `json:"qr_scene_str"` }
UserInfo userinfo
type UserList ¶
type UserList struct { Total int `json:"total"` Count int `json:"count"` Data List `json:"data"` NextOpenID string `json:"next_openid"` }
UserList user list
type ValueColor ¶
ValueColor value color
type WeappTemplateMessage ¶
type WeappTemplateMessage struct { TemplateID string `json:"template_id"` Page string `json:"page"` FormID string `json:"form_id"` Data TemplateData `json:"data"` Emphasis string `json:"emphasis_keyword"` }
WeappTemplateMessage mini message
type WepayResponseDetail ¶
type WepayResponseDetail struct { Field string `json:"field"` Value string `json:"value"` Issue string `json:"issue"` Location string `json:"location"` }
WepayResponseDetail detail
type WepayResponseMessageV3 ¶
type WepayResponseMessageV3 struct { Code string `json:"code"` Message string `json:"message"` Detail WepayResponseDetail `json:"detail"` }
WepayResponseMessageV3 v3 返回消息头