Documentation
¶
Index ¶
- Constants
- Variables
- func CreateOutTradeNo() string
- func GetRandomString(lens int) string
- func InitTransport(certFilePath, keyFilePath, rootCaPath string) (httpTransport *http.Transport, err error)
- func IsEmpty(a interface{}) bool
- type CloseOrder
- type CommonReturn
- type MicropayResult
- type MktTransfersResult
- type OrderqueryResult
- type UnifiedOrderNotifyResult
- type UnifiedOrderResult
- type WXRequestPayment
- type WxMchPay
- type WxPay
- func (wx *WxPay) CloseOrder() (queryResult *OrderqueryResult, err error)
- func (wx *WxPay) MicroPay(totalFee int64, ...) (micropayResult *MicropayResult, err error)
- func (wx *WxPay) MicroPayWithPos(totalFee int64, ...) (micropayResult *MicropayResult, err error)
- func (wx *WxPay) OrderQuery(transactionId, outTradeNo string) (queryResult *OrderqueryResult, err error)
- func (wx *WxPay) UnifiedOrder(totalFee int64, ...) (orderResult *UnifiedOrderResult, err error)
- func (wx *WxPay) UnifiedOrderNotify(result []byte) (unifiedOrderNotifyResult *UnifiedOrderNotifyResult, err error)
Constants ¶
View Source
const ( //企业付款-接口URL地址 WXMXCHPAY_TRANSFERS_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers" //企业付款,用于企业向微信用户个人付款 //企业付款-接口URL地址(沙箱) WXMXCHPAY_SANDBOX_TRANSFERS_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder" //企业付款,用于企业向微信用户个人付款 )
View Source
const ( CHECK_NAME_NO_CHECK = "NO_CHECK" //不校验真实姓名 CHECK_NAME_FORCE_CHECK = "FORCE_CHECK" //强校验真实姓名 )
View Source
const ( WXPAY_UNIFIEDORDER_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder" //统一下单 WXPAY_MICROPAY_URL = "https://api.mch.weixin.qq.com/pay/micropay" //提交刷卡支付 WXPAY_ORDERQUER_URL = "https://api.mch.weixin.qq.com/pay/orderquery" //查询订单 )
接口URL地址
View Source
const ( WXPAY_SANDBOX_UNIFIEDORDER_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder" //统一下单 WXPAY_SANDBOX_MICROPAY_URL = "https://api.mch.weixin.qq.com/pay/micropay" //提交刷卡支付 WXPAY_SANDBOX_ORDERQUER_URL = "https://api.mch.weixin.qq.com/pay/orderquery" //查询订单 )
接口URL地址(沙箱)
View Source
const ( SUCCESS = "SUCCESS" FAIL = "FAIL" OK = "OK" )
返回结果
View Source
const ( SIGN_TYPE_MD5 = "MD5" SIGN_TYPE_HMAC_SHA256 = "HMAC-SHA256" )
签名类型
View Source
const ( TRADE_TYPE_MWEB = "MWEB" //H5支付 TRADE_TYPE_JSAPI = "JSAPI" //小程序/公众号支付 TRADE_TYPE_APP = "APP" //APP支付 TRADE_TYPE_NATIVE = "NATIVE" //扫码支付 TRADE_TYPE_MICROPAY = "MICROPAY" //刷卡支付 )
交易类型
View Source
const ( DEVICEINFO_XXC = "XXC" //默认设备类型 DEVICEINFO_WEB = "WEB" //H5支付或公众号支付 )
设备号
View Source
const ( DEFAULT_ORDER_BODY = "充值" DEFAULT_FEETYPE = "CNY" //默认货币类型 K_CONTENT_TYPE_FORM = "application/x-www-form-urlencoded;charset=utf-8" DEFAULT_TAG = "xml" DEFAULT_EXPIRE = "1h" //默认失效时间间隔1小时 )
View Source
const ( NOAUTH = "NOAUTH" //商户无此接口权限 NOTENOUGH = "NOTENOUGH" //用户帐号余额不足,请用户充值或更换支付卡后再支付 ORDERPAID = "ORDERPAID" //商户订单已支付,无需更多操作 ORDERCLOSED = "ORDERCLOSED" //当前订单已关闭,请重新下单 SYSTEMERROR = "SYSTEMERROR" //系统异常,请用相同参数重新调用 APPID_NOT_EXIST = "APPID_NOT_EXIST" //请检查APPID是否正确 MCHID_NOT_EXIST = "MCHID_NOT_EXIST" //请检查MCHID是否正确 APPID_MCHID_NOT_MATCH = "APPID_MCHID_NOT_MATCH" //请确认appid和mch_id是否匹配 LACK_PARAMS = "LACK_PARAMS" //请检查参数是否齐全 OUT_TRADE_NO_USED = "OUT_TRADE_NO_USED" //请核实商户订单号是否重复提交 SIGNERROR = "SIGNERROR" //签名错误 XML_FORMAT_ERROR = "XML_FORMAT_ERROR" //XML格式错误 REQUIRE_POST_METHOD = "REQUIRE_POST_METHOD" //未使用post传递参数 POST_DATA_EMPTY = "POST_DATA_EMPTY" //post数据不能为空 NOT_UTF8 = "NOT_UTF8" //未使用指定编码格式 PARAM_ERROR = "PARAM_ERROR" //参数错误 AUTHCODEEXPIRE = "AUTHCODEEXPIRE" //请收银员提示用户,请用户在微信上刷新条码 NOTSUPORTCARD = "NOTSUPORTCARD" //该卡不支持当前支付,提示用户换卡支付或绑新卡支付 ORDERREVERSED = "ORDERREVERSED" //订单已撤销 BANKERROR = "BANKERROR" //请立即调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。 USERPAYING = "USERPAYING" //等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。 AUTH_CODE_ERROR = "AUTH_CODE_ERROR" //每个二维码仅限使用一次,请刷新再试 AUTH_CODE_INVALID = "AUTH_CODE_INVALID" //请扫描微信支付被扫条码/二维码 BUYER_MISMATCH = "BUYER_MISMATCH" //请确认支付方是否相同 INVALID_REQUEST = "INVALID_REQUEST" //请确认商户系统是否正常,是否具有相应支付权限 TRADE_ERROR = "TRADE_ERROR" //请确认帐号是否存在异常 )
微信支付返回错误码
Variables ¶
View Source
var ( WXPAY_ERROR = errors.New("请求失败") WXPAY_REQ_PARAMT_ERROR = errors.New("缺少参数") WXPAY_JSON_MARSHA_ERROR = errors.New("JSON生成错误") WXPAY_JSON_UNMARSHA_ERROR = errors.New("JSON解析错误") WXPAY_XML_MARSHA_ERROR = errors.New("XML生成错误") WXPAY_XML_UNMARSHA_ERROR = errors.New("XML解析错误") WXPAY_SIGN_CAL_ERROR = errors.New("签名计算失败") WXPAY_SIGN_VERIFY_ERROR = errors.New("签名验证失败") )
请求参数错误
Functions ¶
Types ¶
type CloseOrder ¶
type CloseOrder struct {
XMLName struct{} `xml:"xml"`
AppId string `xml:"appid"` //小程序ID
MchId string `xml:"mch_id"` //商户号
TransactionId string `xml:"transaction_id"` //微信支付订单号
OutTradeNo string `xml:"out_trade_no"` //商户订单号
NonceStr string `xml:"nonce_str"` //随机字符串
Sign string `xml:"sign"` //签名
SignType string `xml:"sign_type"` //签名类型
}
关闭订单-请求信息
type CommonReturn ¶
type CommonReturn struct {
ReturnCode string `xml:"return_code"` //返回状态码
ReturnMsg string `xml:"return_msg"` //返回信息
}
通用-请求返回信息
type MicropayResult ¶
type MicropayResult struct {
XMLName struct{} `xml:"xml"`
ReturnCode string `xml:"return_code"` //返回状态码
ReturnMsg string `xml:"return_msg"` //返回信息
AppId string `xml:"appid"` //小程序ID
SubAppId string `xml:"sub_appid"` //子商户公众账号ID,否
MchId string `xml:"mch_id"` //商户号
SubMchId string `xml:"sub_mch_id"` //子商户号,微信支付分配的子商户号,开发者模式下必填
DeviceInfo string `xml:"device_info"` //设备号
NonceStr string `xml:"nonce_str"` //随机字符串
Sign string `xml:"sign"` //签名
ResultCode string `xml:"result_code"` //业务结果
ErrCode string `xml:"err_code"` //错误代码
ErrCodeDes string `xml:"err_code_des"` //错误代码描述
Openid string `xml:"openid"` //用户标识
IsSubscribe string `xml:"is_subscribe"` //是否关注公众账号
SubOpenid string `xml:"sub_openid"` //子商户appid下用户唯一标识,如需返回则请求时需要传sub_appid
TradeType string `xml:"trade_type"` //交易类型
BankType string `xml:"bank_type"` //付款银行
FeeType string `xml:"fee_type"` //货币类型
TotalFee string `xml:"total_fee"` //订单金额
SettlementTotalFee string `xml:"settlement_total_fee"` //应结订单金额
CouponFee string `xml:"coupon_fee"` //代金券金额
CashFeeType string `xml:"cash_fee_type"` //现金支付币种
CashFee string `xml:"cash_fee"` //现金支付金额
TransactionId string `xml:"transaction_id"` //微信支付订单号
OutTradeNo string `xml:"out_trade_no"` //商户订单号
Attach string `xml:"attach"` //附加数据
TimeEnd string `xml:"time_end"` //支付完成时间
PromotionDetail string `xml:"promotion_detail"` //营销详情
}
提交刷卡支付-返回结果
type MktTransfersResult ¶
type MktTransfersResult struct {
ReturnCode string //返回状态码
ReturnMsg string //返回信息
MchAppId string //商户appid
MchId string //商户号
DeviceInfo string //设备号
NonceStr string //随机字符串
ResultCode string //业务结果
ErrCode string //错误代码
ErrCodeDes string //错误代码描述
PartnerTradeNo string //商户订单号
PaymentNo string //微信付款单号
PaymentTime string //付款成功时间
}
企业付款-返回结果
type OrderqueryResult ¶
type OrderqueryResult struct {
XMLName struct{} `xml:"xml"`
ReturnCode string `xml:"return_code"` //返回状态码
ReturnMsg string `xml:"return_msg"` //返回信息
AppId string `xml:"appid"` //小程序ID
MchId string `xml:"mch_id"` //商户号
DeviceInfo string `xml:"device_info"` //设备号
NonceStr string `xml:"nonce_str"` //随机字符串
Sign string `xml:"sign"` //签名
ResultCode string `xml:"result_code"` //业务结果
ErrCode string `xml:"err_code"` //错误代码
ErrCodeDes string `xml:"err_code_des"` //错误代码描述
Openid string `xml:"openid"` //用户标识
IsSubscribe string `xml:"is_subscribe"` //是否关注公众账号
TradeType string `xml:"trade_type"` //交易类型
TradeState string `xml:"trade_state"` //交易状态
BankType string `xml:"bank_type"` //付款银行
TotalFee string `xml:"total_fee"` //订单金额
SettlementTotalFee string `xml:"settlement_total_fee"` //应结订单金额
FeeType string `xml:"fee_type"` //货币类型
CashFeeType string `xml:"cash_fee_type"` //现金支付币种
CashFee string `xml:"cash_fee"` //现金支付金额
CouponFee string `xml:"coupon_fee"` //代金券金额
CouponCount string `xml:"coupon_count"` //代金券使用数量
TransactionId string `xml:"transaction_id"` //微信支付订单号
OutTradeNo string `xml:"out_trade_no"` //商户订单号
Attach string `xml:"attach"` //附加数据
TimeEnd string `xml:"time_end"` //支付完成时间
TradeStateDesc string `xml:"trade_state_desc"` //交易状态描述
}
查询订单-返回信息
type UnifiedOrderNotifyResult ¶
type UnifiedOrderNotifyResult struct {
XMLName struct{} `xml:"xml"`
ReturnCode string `xml:"return_code"` //返回状态码
ReturnMsg string `xml:"return_msg"` //返回信息
AppId string `xml:"appid"` //小程序ID
MchId string `xml:"mch_id"` //商户号
DeviceInfo string `xml:"device_info"` //设备号
NonceStr string `xml:"nonce_str"` //随机字符串
Sign string `xml:"sign"` //签名
ResultCode string `xml:"result_code"` //业务结果
ErrCode string `xml:"err_code"` //错误代码
ErrCodeDes string `xml:"err_code_des"` //错误代码描述
Openid string `xml:"openid"` //用户标识
IsSubscribe string `xml:"is_subscribe"` //是否关注公众账号
TradeType string `xml:"trade_type"` //交易类型
BankType string `xml:"bank_type"` //付款银行
TotalFee string `xml:"total_fee"` //订单金额
SettlementTotalFee string `xml:"settlement_total_fee"` //应结订单金额
FeeType string `xml:"fee_type"` //标价币种
CashFee string `xml:"cash_fee"` //现金支付金额
CashFeeType string `xml:"cash_fee_type"` //现金支付币种
CouponFee string `xml:"coupon_fee"` //代金券金额
CouponCount string `xml:"coupon_count"` //代金券使用数量
TransactionId string `xml:"transaction_id"` //微信支付订单号
OutTradeNo string `xml:"out_trade_no"` //商户订单号
Attach string `xml:"attach"` //附加数据
TimeEnd string `xml:"time_end"` //支付完成时间
}
统一下单-支付结果通知
type UnifiedOrderResult ¶
type UnifiedOrderResult struct {
ReturnCode string //返回状态码
ReturnMsg string //返回信息
ResultCode string //业务结果
ErrCode string //错误代码
ErrCodeDes string //错误代码描述
PrepayId string //预支付交易会话标识
PrepayUrl string //二维码链接或者支付跳转链接
RequestPayment *WXRequestPayment //小程序支付
}
统一下单-返回结果
type WXRequestPayment ¶
type WXRequestPayment struct {
AppId string `xml:"appId"` //小程序ID
TimeStamp string `xml:"timeStamp"` //时间戳
NonceStr string `xml:"nonceStr"` //随机字符串
Package string `xml:"package"` //数据包
SignType string `xml:"signType"` //签名方式
Sign string `xml:"sign"` //签名
}
小程序调起支付信息
type WxMchPay ¶
type WxMchPay struct {
// contains filtered or unexported fields
}
微信企业付款
func NewWxMchPay ¶
func NewWxMchPay(mchAppId, mchId, partnerKey, spBillCreateIp, deviceInfo string, useSandbox bool, httpTransport *http.Transport) (wx *WxMchPay)
创建微信支付对象
func (*WxMchPay) MktTransfers ¶
func (wx *WxMchPay) MktTransfers(partnerTradeNo string, openId string, checkName string, reUserName string, amount int, desc string, nonceStr string) (result *MktTransfersResult, err error)
用于企业向微信用户个人付款 partnerTradeNo,商户订单号(必填) openId,用户openid(必填) checkName,校验用户姓名选项(必填) reUserName,收款用户姓名(非必填,如果check_name设置为FORCE_CHECK,则必填用户真实姓名) amount,金额,企业付款金额,单位为分(必填) desc,企业付款备注,(必填) nonceStr,随机字符串,不长于32位(必填)
type WxPay ¶
type WxPay struct {
AppId string //小程序appId
SubAppId string //子商户公众账号ID,否
MchId string //商户号
SubMchId string //子商户号,微信支付分配的子商户号,开发者模式下必填
PartnerKey string //商户密钥
DeviceInfo string //设备号
FeeType string //货币类型
SpBillCreateIp string //终端IP
SignType string //签名类型
MachCert []byte //商户证书
UseSandbox bool //是否是测试环境
NotifyUrl string //通知地址
TradeType string //交易类型
HttpClient *http.Client
HttpClientWithCert *http.Client
}
微信支付
func New ¶
func New(appId, subAppId, mchId, subMchId, partnerKey, notifyUrl, spBillCreateIp, tradeType, signType, deviceInfo string, useSandbox bool, machCert []byte) (wx *WxPay)
创建微信支付对象
func (*WxPay) CloseOrder ¶
func (wx *WxPay) CloseOrder() (queryResult *OrderqueryResult, err error)
关闭订单 场景:公共号支付、扫码支付、APP支付
func (*WxPay) MicroPay ¶
func (wx *WxPay) MicroPay(totalFee int64, outTradeNo, body, authCode, detail, attach, goodsTag, limitPay, sceneInfo string) (micropayResult *MicropayResult, err error)
提交刷卡支付 场景:刷卡支付
func (*WxPay) MicroPayWithPos ¶
func (wx *WxPay) MicroPayWithPos(totalFee int64, outTradeNo, body, authCode, detail, attach, goodsTag, limitPay, sceneInfo string) (micropayResult *MicropayResult, err error)
提交刷卡支付 内置重试机制,最多60s
func (*WxPay) OrderQuery ¶
func (wx *WxPay) OrderQuery(transactionId, outTradeNo string) (queryResult *OrderqueryResult, err error)
查询订单 场景:刷卡支付、公共号支付、扫码支付、APP支付
func (*WxPay) UnifiedOrder ¶
func (wx *WxPay) UnifiedOrder(totalFee int64, outTradeNo, body, openId, detail, attach, goodsTag, productId, limitPay, sceneInfo string) (orderResult *UnifiedOrderResult, err error)
统一下单 场景:公共号支付、扫码支付、APP支付
func (*WxPay) UnifiedOrderNotify ¶
func (wx *WxPay) UnifiedOrderNotify(result []byte) (unifiedOrderNotifyResult *UnifiedOrderNotifyResult, err error)
统一下单-支付结果通知
Click to show internal directories.
Click to hide internal directories.