Documentation ¶
Index ¶
- Constants
- func SignWithHMacSHA256(m utils.WXML, apikey string) string
- func SignWithMD5(m utils.WXML, apikey string) string
- type ContractOrder
- type Entrust
- type Order
- type Pappay
- func (p *Pappay) APPEntrust(e *Entrust) (utils.WXML, error)
- func (p *Pappay) ContractOrder(order *ContractOrder) (utils.WXML, error)
- func (p *Pappay) DeleteContractByCode(planID, contractCode, remark string) (utils.WXML, error)
- func (p *Pappay) DeleteContractByID(contractID, remark string) (utils.WXML, error)
- func (p *Pappay) H5Entrust(e *Entrust) utils.WXML
- func (p *Pappay) MPEntrust(e *Entrust) utils.WXML
- func (p *Pappay) PayApply(apply *PappayApply) (utils.WXML, error)
- func (p *Pappay) PubEntrust(e *Entrust) utils.WXML
- func (p *Pappay) QueryContractByCode(planID, contractCode string) (utils.WXML, error)
- func (p *Pappay) QueryContractByID(contractID string) (utils.WXML, error)
- func (p *Pappay) QueryOrderByOutTradeNO(outTradeNO string) (utils.WXML, error)
- func (p *Pappay) QueryOrderByTransactionID(transactionID string) (utils.WXML, error)
- type PappayApply
- type Redpack
- type RedpackData
- type Refund
- func (r *Refund) QueryByOutRefundNO(outRefundNO string, offset ...int) (utils.WXML, error)
- func (r *Refund) QueryByOutTradeNO(outTradeNO string, offset ...int) (utils.WXML, error)
- func (r *Refund) QueryByRefundID(refundID string, offset ...int) (utils.WXML, error)
- func (r *Refund) QueryByTransactionID(transactionID string, offset ...int) (utils.WXML, error)
- func (r *Refund) RefundByOutTradeNO(outTradeNO string, data *RefundData) (utils.WXML, error)
- func (r *Refund) RefundByTransactionID(transactionID string, data *RefundData) (utils.WXML, error)
- type RefundData
- type Reply
- type Transfer
- func (t *Transfer) QueryBalanceOrder(partnerTradeNO string) (utils.WXML, error)
- func (t *Transfer) QueryBankCardOrder(partnerTradeNO string) (utils.WXML, error)
- func (t *Transfer) ToBalance(data *TransferBalanceData) (utils.WXML, error)
- func (t *Transfer) ToBankCard(data *TransferBankCardData, pubKey []byte) (utils.WXML, error)
- type TransferBalanceData
- type TransferBankCardData
- type UnifiedOrder
- type WXMch
- func (wx *WXMch) APPAPI(prepayID string) utils.WXML
- func (wx *WXMch) JSAPI(prepayID string) utils.WXML
- func (wx *WXMch) Order(options ...utils.HTTPRequestOption) *Order
- func (wx *WXMch) Pappay(options ...utils.HTTPRequestOption) *Pappay
- func (wx *WXMch) RSAPublicKey(options ...utils.HTTPRequestOption) ([]byte, error)
- func (wx *WXMch) Redpack(options ...utils.HTTPRequestOption) *Redpack
- func (wx *WXMch) Refund(options ...utils.HTTPRequestOption) *Refund
- func (wx *WXMch) Transfer(options ...utils.HTTPRequestOption) *Transfer
- func (wx *WXMch) VerifyWXReply(reply utils.WXML) error
Constants ¶
const ( TradeAPP = "APP" TradeJSAPI = "JSAPI" TradeMWEB = "MWEB" TradeNative = "NATIVE" TradePAP = "PAP" )
交易类型
const ( SignMD5 = "MD5" SignHMacSHA256 = "HMAC-SHA256" )
签名类型
const ( ResultSuccess = "SUCCESS" ResultFail = "FAIL" ResultNull = "RESULT NULL" // 查询结果为空 SystemError = "SYSTEMERROR" // 系统繁忙,请稍后再试 )
返回结果
const ( TradeStateSuccess = "SUCCESS" // 支付成功 TradeStateRefund = "REFUND" // 转入退款 TradeStateNotpay = "NOTPAY" // 未支付 TradeStateClosed = "CLOSED" // 已关闭 TradeStateRevoked = "REVOKED" // 已撤销(刷卡支付) TradeStatePaying = "USERPAYING" // 用户支付中 TradeStateAccept = "ACCEPT" // 已接收,等待扣款 TradeStateError = "PAYERROR" // 支付失败 TradeStatePayFail = "PAY_FAIL" // 支付失败(其他原因,如银行返回失败) )
const ( RefundSuccess = "SUCCESS" // 退款成功 RefundClosed = "REFUNDCLOSE" // 退款关闭 RefundProcessing = "PROCESSING" // 退款处理中 RefundChange = "CHANGE" // 退款异常 )
const ( OrderNotExist = "ORDERNOTEXIST" // 订单不存在 RefundNotExist = "REFUNDNOTEXIST" // 退款不存在 )
const ( ContractAdd = "ADD" // 签约 ContractDelete = "DELETE" // 解约 )
const ( ContractEntrustUndo = "1" // 未签约 ContractEntrustOK = "0" // 已签约 )
const ( ContractDeleteUndo = "0" // 未解约 ContractDeleteExpired = "1" // 有效期过自动解约 ContractDeleteUser = "2" // 用户主动解约 ContractDeleteAPI = "3" // 商户API解约 ContractDeletePlatform = "4" // 商户平台解约 ContractDeleteLogout = "5" // 注销 )
const ( TransferNoCheck = "NO_CHECK" // 不校验真实姓名 TransferForceCheck = "FORCE_CHECK" // 强校验真实姓名 )
const ( RedpackScene1 = "PRODUCT_1" // 商品促销 RedpackScene2 = "PRODUCT_2" // 抽奖 RedpackScene3 = "PRODUCT_3" // 虚拟物品兑奖 RedpackScene4 = "PRODUCT_4" // 企业内部福利 RedpackScene5 = "PRODUCT_5" // 渠道分润 RedpackScene6 = "PRODUCT_6" // 保险回馈 RedpackScene7 = "PRODUCT_7" // 彩票派奖 RedpackScene8 = "PRODUCT_8" // 税务刮奖 )
const ( OrderUnifyURL = "https://api.mch.weixin.qq.com/pay/unifiedorder" // 统一下单 OrderQueryURL = "https://api.mch.weixin.qq.com/pay/orderquery" // 订单查询 OrderCloseURL = "https://api.mch.weixin.qq.com/pay/closeorder" // 订单关闭 )
URL - order
const ( RefundApplyURL = "https://api.mch.weixin.qq.com/secapi/pay/refund" // 申请退款 RefundQueryURL = "https://api.mch.weixin.qq.com/pay/refundquery" // 退款查询 )
URL - refund
const ( PappayAPPEntrustURL = "https://api.mch.weixin.qq.com/papay/preentrustweb" // APP纯签约 PappayPubEntrustURL = "https://api.mch.weixin.qq.com/papay/entrustweb" // 公众号纯签约 PappayH5EntrustURL = "https://api.mch.weixin.qq.com/papay/h5entrustweb" // H5纯签约 PappayContractOrderURL = "https://api.mch.weixin.qq.com/pay/contractorder" // 支付中签约 PappayContractQueryURL = "https://api.mch.weixin.qq.com/papay/querycontract" // 签约查询 PappayContractDeleteURL = "https://api.mch.weixin.qq.com/papay/deletecontract" // 申请解约 PappayPayApplyURL = "https://api.mch.weixin.qq.com/pay/pappayapply" // 申请扣款 PappayOrderQueryURL = "https://api.mch.weixin.qq.com/pay/paporderquery" // 扣款查询 )
URL - pappay
const ( TransferToBalanceURL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers" // 企业付款到零钱 TransferBalanceOrderQueryURL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo" // 企业付款到零钱订单查询 TransferToBankCardURL = "https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank" // 企业付款到银行卡 TransferBankCardOrderQueryURL = "https://api.mch.weixin.qq.com/mmpaysptrans/query_bank" // 企业付款到银行卡订单查询 )
URL - transfer
const ( RedpackNormalURL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack" // 普通红包 RedpackGroupURL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack" // 裂变红包 RedpackMinipURL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendminiprogramhb" // 小程序红包 RedpackQueryURL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo" // 红包查询 )
const RSAPublicKeyURL = "https://fraud.mch.weixin.qq.com/risk/getpublickey"
Variables ¶
This section is empty.
Functions ¶
func SignWithHMacSHA256 ¶
SignWithHMacSHA256 生成HMAC-SHA256签名
Types ¶
type ContractOrder ¶
type ContractOrder struct { // 必填参数 OutTradeNO string // 商户系统内部的订单号,32个字符内、可包含字母,其他说明见商户订单号 TotalFee int // 订单总金额,单位为分,详见支付金额 SpbillCreateIP string // APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP TradeType string // 取值如下:JSAPI,NATIVE,APP,MWEB,详细说明见参数规定 Body string // 商品或支付单简要描述 PlanID string // 协议模板id,设置路径见开发步骤 ContractCode string // 商户侧的签约协议号,由商户生成 RequestSerial int64 // 商户请求签约时的序列号,要求唯一性,纯数字, 范围不能超过Int64的范围 ContractDisplayAccount string // 签约用户的名称,用于页面展示,参数值不支持UTF8非3字节编码的字符,如表情符号,故请勿使用微信昵称 PaymentNotifyURL string // 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数 ContractNotifyURL string // 签约信息回调通知的url // 选填参数 DeviceInfo string // 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB" Detail string // 商品名称明细列表 Attach string // 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 FeeType string // 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 TimeStart string // 订单生成时间,格式为yyyyMMddHHmmss,如:2009年12月25日9点10分10秒 表示为:20091225091010 TimeExpire string // 订单失效时间,格式为yyyyMMddHHmmss,如:2009年12月27日9点10分10秒 表示为:20091227091010 GoodsTag string // 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 ProductID string // trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义 LimitPay string // no_credit--指定不能使用信用卡支付 OpenID string // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识 }
ContractOrder 支付并签约
type Entrust ¶
type Entrust struct { // 必填字段 PlanID string // 协议模板id,设置路径见开发步骤 ContractCode string // 商户侧的签约协议号,由商户生成 RequestSerial int64 // 商户请求签约时的序列号,要求唯一性,纯数字, 范围不能超过Int64的范围 ContractDisplayAccount string // 签约用户的名称,用于页面展示,参数值不支持UTF8非3字节编码的字符,如表情符号,故请勿使用微信昵称 SpbillCreateIP string // 用户客户端的真实IP地址,H5签约必填 NotifyURL string // 用于接收签约成功消息的回调通知地址,对notify_url参数值需进行encode处理,注意是对参数值进行encode // 选填字段 ReturnAPP bool // APP签约选填,签约后是否返回app,注:签约参数appid必须为发起签约的app所有,且在微信开放平台注册过 ReturnWeb bool // 公众号签约选填,签约后是否返回签约页面的referrer url, 不填或获取不到referrer则不返回; 跳转referrer url时会自动带上参数from_wxpay=1 OuterID int64 // 小程序签约选填,用户在商户侧的标识 ReturnAPPID string // H5签约选填,商户具有指定返回app的权限时,签约成功将返回appid指定的app应用,如不填且签约发起时的浏览器UA可被微信识别,则跳转到浏览器,否则留在微信 }
Entrust 微信纯签约
type Order ¶
type Order struct {
// contains filtered or unexported fields
}
Order 订单操作
func (*Order) QueryByOutTradeNO ¶
QueryByOutTradeNO 根据商户订单号查询
func (*Order) QueryByTransactionID ¶
QueryByTransactionID 根据微信订单号查询
type Pappay ¶
type Pappay struct {
// contains filtered or unexported fields
}
func (*Pappay) APPEntrust ¶
APPEntrust APP纯签约
func (*Pappay) ContractOrder ¶
func (p *Pappay) ContractOrder(order *ContractOrder) (utils.WXML, error)
ContractOrder 支付中签约下单
func (*Pappay) DeleteContractByCode ¶
DeleteContractByCode 根据签约协议号解约,需要商户平台配置的代扣模版id
func (*Pappay) DeleteContractByID ¶
DeleteContractByID 根据微信返回的委托代扣协议id解约
func (*Pappay) PayApply ¶
func (p *Pappay) PayApply(apply *PappayApply) (utils.WXML, error)
PayApply 申请扣款
func (*Pappay) QueryContractByCode ¶
QueryContractByCode 根据签约协议号查询签约关系,需要商户平台配置的代扣模版id
func (*Pappay) QueryContractByID ¶
QueryContractByID 根据微信返回的委托代扣协议id查询签约关系
func (*Pappay) QueryOrderByOutTradeNO ¶
QueryOrderByOutTradeNO 根据商户订单号查询
type PappayApply ¶
type PappayApply struct { // 必填参数 OutTradeNO string // 商户系统内部的订单号,32个字符内、可包含字母,其他说明见商户订单号 TotalFee int // 订单总金额,单位为分,详见支付金额 SpbillCreateIP string // APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP ContractID string // 签约成功后,微信返回的委托代扣协议id Body string // 商品或支付单简要描述 NotifyURL string // 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数 // 选填参数 Detail string // 商品名称明细列表 Attach string // 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 FeeType string // 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 GoodsTag string // 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 Receipt bool // 是否在支付成功消息和支付详情页中出现开票入口,注:需要在微信支付商户平台或微信公众平台开通电子发票功能 }
PappayApply 扣款申请
type Redpack ¶
type Redpack struct {
// contains filtered or unexported fields
}
Redpack 企业红包
func (*Redpack) QueryByBillNO ¶
QueryByBillNO 查询红包记录
func (*Redpack) SendGroup ¶
func (r *Redpack) SendGroup(data *RedpackData) (utils.WXML, error)
SendGroup 发放裂变红包
func (*Redpack) SendMinip ¶
func (r *Redpack) SendMinip(data *RedpackData) (utils.WXML, error)
SendMinip 发放小程序红包
func (*Redpack) SendNormal ¶
func (r *Redpack) SendNormal(data *RedpackData) (utils.WXML, error)
SendNormal 发放普通红包
type RedpackData ¶
type RedpackData struct { // 必填参数 MchBillNO string // 商户订单号(每个订单号必须唯一。取值范围:0~9,a~z,A~Z)接口根据商户订单号支持重入,如出现超时可再调用 SendName string // 红包发送者名称;注意:敏感词会被转义成字符* ReOpenID string // 接受红包的用户openid TotalAmount int // 付款金额,单位:分 TotalNum int // 红包发放总人数 Wishing string // 红包祝福语;注意:敏感词会被转义成字符* ClientIP string // 调用接口的机器Ip地址 ActName string // 活动名称;注意:敏感词会被转义成字符* Remark string // 备注信息 // 选填参数 AmtType string // 红包金额设置方式,适用于裂变红包,ALL_RAND — 全部随机,商户指定总金额和红包发放总人数,由微信支付随机计算出各红包金额 NotifyWay string // 通过JSAPI方式领取红包,小程序红包固定传 MINI_PROGRAM_JSAPI SceneID string // 发放红包使用场景,红包金额大于200或者小于1元时必传 RiskInfo string // 活动信息,urlencode(posttime=xx&mobile=xx&deviceid=xx。posttime:用户操作的时间戳;mobile:业务系统账号的手机号,国家代码-手机号,不需要+号;deviceid:MAC地址或者设备唯一标识;clientversion:用户操作的客户端版本 }
RedpackData 红包发放数据
type Refund ¶
type Refund struct {
// contains filtered or unexported fields
}
Refund 退款操作
func (*Refund) QueryByOutRefundNO ¶
QueryByOutRefundNO 根据商户退款单号查询
func (*Refund) QueryByOutTradeNO ¶
QueryByOutTradeNO 根据商户订单号查询
func (*Refund) QueryByRefundID ¶
QueryByRefundID 根据微信退款单号查询
func (*Refund) QueryByTransactionID ¶
QueryByTransactionID 根据微信订单号查询
func (*Refund) RefundByOutTradeNO ¶
RefundByOutTradeNO 根据商户订单号退款
func (*Refund) RefundByTransactionID ¶
RefundByTransactionID 根据微信订单号退款
type RefundData ¶
type RefundData struct { // 必填参数 OutRefundNO string // 商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔 TotalFee int // 订单总金额,单位为分,只能为整数,详见支付金额 RefundFee int // 退款总金额,订单总金额,单位为分,只能为整数,详见支付金额 // 选填参数 RefundFeeType string // 货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 RefundDesc string // 若商户传入,会在下发给用户的退款消息中体现退款原因 RefundAccount string // 退款资金来源,仅针对老资金流商户使用 NotifyURL string // 异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数 }
RefundData 退款数据
type Reply ¶
type Reply struct { XMLName xml.Name `xml:"xml"` ReturnCode utils.CDATA `xml:"return_code"` ReturnMsg utils.CDATA `xml:"return_msg"` }
Reply 回复支付结果
type Transfer ¶
type Transfer struct {
// contains filtered or unexported fields
}
Transfer 企业付款
func (*Transfer) QueryBalanceOrder ¶
QueryBalanceOrder 查询付款到零钱订单
func (*Transfer) QueryBankCardOrder ¶
QueryBankCardOrder 查询付款到银行卡订单
func (*Transfer) ToBalance ¶
func (t *Transfer) ToBalance(data *TransferBalanceData) (utils.WXML, error)
ToBalance 付款到零钱
func (*Transfer) ToBankCard ¶
ToBankCard 付款到银行卡
type TransferBalanceData ¶
type TransferBalanceData struct { // 必填参数 PartnerTradeNO string // 商户订单号,需保持唯一性 (只能是字母或者数字,不能包含有其它字符) OpenID string // 商户appid下,某用户的openid CheckName string // NO_CHECK:不校验真实姓名;FORCE_CHECK:强校验真实姓名 Amount int // 企业付款金额,单位:分 Desc string // 企业付款备注,必填。注意:备注中的敏感词会被转成字符* // 选填参数 ReUserName string // 收款用户真实姓名。如果check_name设置为FORCE_CHECK,则必填用户真实姓名 DeviceInfo string // 微信支付分配的终端设备号 SpbillCreateIP string // 该IP同在商户平台设置的IP白名单中的IP没有关联,该IP可传用户端或者服务端的IP }
TransferBalanceData 付款到零钱数据
type TransferBankCardData ¶
type TransferBankCardData struct { // 必填参数 PartnerTradeNO string // 商户订单号,需保持唯一(只允许数字[0~9]或字母[A~Z]和[a~z],最短8位,最长32位) EncBankNO string // 收款方银行卡号(采用标准RSA算法,公钥由微信侧提供) EncTrueName string // 收款方用户名(采用标准RSA算法,公钥由微信侧提供) BankCode string // 银行卡所在开户行编号,参考:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_4 Amount int // 付款金额:RMB分(支付总额,不含手续费)注:大于0的整数 // 选填参数 Desc string // 企业付款到银行卡付款说明,即订单备注(UTF8编码,允许100个字符以内) }
TransferBankCardData 付款到银行卡数据
type UnifiedOrder ¶
type UnifiedOrder struct { // 必填参数 OutTradeNO string // 商户系统内部的订单号,32个字符内、可包含字母,其他说明见商户订单号 TotalFee int // 订单总金额,单位为分,详见支付金额 SpbillCreateIP string // APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP TradeType string // 取值如下:JSAPI,NATIVE,APP,MWEB,详细说明见参数规定 Body string // 商品或支付单简要描述 NotifyURL string // 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数 // 选填参数 DeviceInfo string // 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB" Detail string // 商品名称明细列表 Attach string // 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 FeeType string // 符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 TimeStart string // 订单生成时间,格式为yyyyMMddHHmmss,如:2009年12月25日9点10分10秒 表示为:20091225091010 TimeExpire string // 订单失效时间,格式为yyyyMMddHHmmss,如:2009年12月27日9点10分10秒 表示为:20091227091010 GoodsTag string // 商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 ProductID string // trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义 LimitPay string // no_credit--指定不能使用信用卡支付 OpenID string // trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识 Receipt bool // 是否在支付成功消息和支付详情页中出现开票入口,注:需要在微信支付商户平台或微信公众平台开通电子发票功能 SceneInfo string // 该字段用于上报支付的场景信息 }
UnifiedOrder 统一下单数据
type WXMch ¶
type WXMch struct { AppID string MchID string ApiKey string Client *utils.HTTPClient SSLClient *utils.HTTPClient }
WXMch 微信商户
func (*WXMch) Order ¶
func (wx *WXMch) Order(options ...utils.HTTPRequestOption) *Order
Order returns new order
func (*WXMch) Pappay ¶
func (wx *WXMch) Pappay(options ...utils.HTTPRequestOption) *Pappay
Pappay returns new pappay
func (*WXMch) RSAPublicKey ¶
func (wx *WXMch) RSAPublicKey(options ...utils.HTTPRequestOption) ([]byte, error)
RSAPublicKey 获取RSA加密公钥
func (*WXMch) Redpack ¶
func (wx *WXMch) Redpack(options ...utils.HTTPRequestOption) *Redpack
Redpack returns new redpack
func (*WXMch) Refund ¶
func (wx *WXMch) Refund(options ...utils.HTTPRequestOption) *Refund
Refund returns new refund