123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package wechat
- import "encoding/xml"
- // Entrust 申请签约
- type Entrust struct {
- XMLName xml.Name `xml:"xml"`
- AppID string `xml:"appid"`
- MchID string `xml:"mch_id"`
- PlanID string `xml:"plan_id"` // 协议模板id
- ContractCode string `xml:"contract_code"` // 签约协议号
- RequestSerial int64 `xml:"request_serial"` // 商户请求签约时的序列号,要求唯一性。序列号主要用于排序,不作为查询条件
- Name string `xml:"contract_display_account"` // 签约用户的名称
- NotifyURL string `xml:"notify_url"` // 接受扣款结果异步回调通知的url,传输需要url encode
- //Ver string `xml:"ver"` // 版本号, 固定值1.0
- Sign string `xml:"sign"` // 签名
- Timestamp int `xml:"timestamp"` // 时间戳, 10位时间戳
- IP string `xml:"clientip"` // 用户客户端的真实IP地址
- // ReturnWeb int `xml:"return_web"` // 1表示返回签约页面的referrer url, 不填或获取不到referrer则不返回; 跳转referrer url时会自动带上参数from_wxpay=1
- }
- // H5Entrust H5纯签约
- func H5Entrust(config WePayConfig, order Entrust) (reply WePayReply, err error) {
- m := make(map[string]interface{})
- m["appid"] = order.AppID
- m["mch_id"] = order.MchID
- m["plan_id"] = order.PlanID
- m["contract_code"] = order.ContractCode
- m["request_serial"] = order.RequestSerial
- m["contract_display_account"] = order.Name
- m["notify_url"] = order.NotifyURL
- m["ver"] = `1.0`
- m["timestamp"] = order.Timestamp
- m["clientip"] = order.IP
- var data []byte
- order.Sign = Sign(m, config.Key)
- if data, err = xml.Marshal(order); err != nil {
- return
- }
- reply, err = post(WePayHost+WePayURLPapayEntrust, data)
- return
- }
|