mch

package
v1.1.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2021 License: MIT Imports: 21 Imported by: 0

README

微信支付(普通商户直连模式)

import (
    "github.com/shenghui0779/gochat"
    "github.com/shenghui0779/gochat/mch"
)
初始化商户实例
wxpay := gochat.NewMch(appid, mchid, apikey)

// 涉及退款等,需要加载证书(三选一)
wxpay.LoadCertFromPemBlock(certBlock, keyBlock)
wxpay.LoadCertFromPemFile(certFile, keyFile)
wxpay.LoadCertFromP12File(path)
订单
// 统一下单
wxpay.Do(ctx, mch.UnifyOrder(orderData))

// APP拉起支付
wxpay.APPAPI(prepayID)

// JSAPI拉起支付
wxpay.JSAPI(prepayID)

// 根据微信订单号查询
wxpay.Do(ctx, mch.QueryOrderByTransactionID(transactionID))

// 根据商户订单号查询
wxpay.Do(ctx, mch.QueryOrderByOutTradeNO(outTradeNO))

// 关闭订单
wxpay.Do(ctx, mch.CloseOrder(outTradeNO))
退款
// 根据微信订单号退款
wxpay.Do(ctx, mch.RefundByTransactionID(transactionID, refundData))

// 根据商户订单号退款
wxpay.Do(ctx, mch.RefundByOutTradeNO(outTradeNO, refundData))

// 根据微信退款单号查询
wxpay.Do(ctx, mch.QueryRefundByRefundID(refundID))

// 根据商户退款单号查询
wxpay.Do(ctx, mch.QueryRefundByOutRefundNO(outRefundNO))

// 根据微信订单号查询
wxpay.Do(ctx, mch.QueryRefundByTransactionID(transactionID))

// 根据商户订单号查询
wxpay.Do(ctx, mch.QueryRefundByOutTradeNO(outTradeNO))
委托扣款
// APP纯签约
wxpay.Do(ctx, mch.APPEntrust(contract))

// 公众号纯签约
wxpay.Do(ctx, mch.OAEntrust(contract))

// 小程序纯签约,返回小程序所需的 `extraData` 数据
wxpay.Do(ctx, mch.MPEntrust(contract))

// H5纯签约
wxpay.Do(ctx, mch.H5Entrust(contract))

// 支付中签约
wxpay.Do(ctx, mch.EntrustOrder(orderData))

// 根据微信返回的委托代扣协议id查询签约关系
wxpay.Do(ctx, mch.QueryContractByID(contractID))

// 根据签约协议号查询签约关系,需要商户平台配置的代扣模版id
wxpay.Do(ctx, mch.QueryContractByCode(planID, contractCode))

// 申请扣款
wxpay.Do(ctx, mch.PappayApply(pappayData))

// 根据微信订单号查询
wxpay.Do(ctx, mch.QueryPappayByTransactionID(transactionID))

// 根据商户订单号查询
wxpay.Do(ctx, mch.QueryPappayByOutTradeNO(outTradeNO))

// 根据微信返回的委托代扣协议id解约
wxpay.Do(ctx, mch.DeleteContractByID(contractID, remark))

// 根据签约协议号解约,需要商户平台配置的代扣模版id
wxpay.Do(ctx, mch.DeleteContractByID(planID, contractCode, remark))
企业付款
// 付款到零钱
wxpay.Do(ctx, mch.TransferToBalance(balanceData))

// 付款到零钱订单查询
wxpay.Do(ctx, mch.QueryTransferBalanceOrder(partnerTradeNO))

// 付款到银行卡
wxpay.Do(ctx, mch.TransferToBankCard(bankCardData, pubKey))

// 付款到银行卡订单查询
wxpay.Do(ctx, mch.QueryTransferBankCardOrder(partnerTradeNO))
企业红包
// 发放普通红包
wxpay.Do(ctx, mch.SendNormalRedpack(redpackData))

// 发放裂变红包
wxpay.Do(ctx, mch.SendGroupRedpack(redpackData))

// 发放小程序红包
wxpay.Do(ctx, mch.SendMinipRedpack(redpackData))

// 领取红包JSAPI
wxpay.MinipRedpackJSAPI(package)

// 查询红包记录
wxpay.Do(ctx, mch.QueryRedpackByBillNO(billNO))
回调通知
// 签名验证
wxpay.VerifyWXMLResult(wxml)

// 退款信息解密
wxpay.DecryptWithAES256ECB(encrypt)

Documentation

Index

Constants

View Source
const (
	TradeAPP    = "APP"
	TradeJSAPI  = "JSAPI"
	TradeMWEB   = "MWEB"
	TradeNative = "NATIVE"
	TradePAP    = "PAP"
)

交易类型

View Source
const (
	SignMD5        = "MD5"
	SignHMacSHA256 = "HMAC-SHA256"
)

签名类型

View Source
const (
	ResultSuccess = "SUCCESS"
	ResultFail    = "FAIL"
	ResultNull    = "RESULT NULL" // 查询结果为空
	NotFound      = "NOT_FOUND"   // 数据不存在
	SystemError   = "SYSTEMERROR" // 系统繁忙,请稍后再试
)

返回结果

View Source
const (
	TradeStateSuccess = "SUCCESS"    // 支付成功
	TradeStateRefund  = "REFUND"     // 转入退款
	TradeStateNotpay  = "NOTPAY"     // 未支付
	TradeStateClosed  = "CLOSED"     // 已关闭
	TradeStateRevoked = "REVOKED"    // 已撤销(刷卡支付)
	TradeStatePaying  = "USERPAYING" // 用户支付中
	TradeStateAccept  = "ACCEPT"     // 已接收,等待扣款
	TradeStateError   = "PAYERROR"   // 支付失败
	TradeStatePayFail = "PAY_FAIL"   // 支付失败(其他原因,如银行返回失败)
)
View Source
const (
	CouponTypeCash   = "CASH"    // 充值代金券
	CouponTypeNoCash = "NO_CASH" // 非充值优惠券
)
View Source
const (
	RefundStatusSuccess    = "SUCCESS"     // 退款成功
	RefundStatusClosed     = "REFUNDCLOSE" // 退款关闭
	RefundStatusProcessing = "PROCESSING"  // 退款处理中
	RefundStatusChange     = "CHANGE"      // 退款异常
)
View Source
const (
	RefundChannelOriginal      = "ORIGINAL"       // 原路退款
	RefundChannelBalance       = "BALANCE"        // 退回到余额
	RefundChannelOtherBalance  = "OTHER_BALANCE"  // 原账户异常退到其他余额账户
	RefundChannelOtherBankCard = "OTHER_BANKCARD" // 原银行卡异常退到其他银行卡
)
View Source
const (
	OrderNotExist  = "ORDERNOTEXIST"  // 订单不存在
	RefundNotExist = "REFUNDNOTEXIST" // 退款不存在
)
View Source
const (
	ContractOAEntrust = "offical_accounts_entrust"
	ContractMPEntrust = "mini_program_entrust"
	ContractH5Entrust = "h5_entrust"
)
View Source
const (
	ContractAdd    = "ADD"    // 签约
	ContractDelete = "DELETE" // 解约
)
View Source
const (
	ContractEntrustUndo       = "1" // 未签约
	ContractEntrustOK         = "0" // 已签约
	ContractEntrustProcessing = "9" // 签约进行中
)
View Source
const (
	ContractDeleteUndo     = "0" // 未解约
	ContractDeleteExpired  = "1" // 有效期过自动解约
	ContractDeleteUser     = "2" // 用户主动解约
	ContractDeleteAPI      = "3" // 商户API解约
	ContractDeletePlatform = "4" // 商户平台解约
	ContractDeleteLogout   = "5" // 注销
	ContractDeleteContact  = "7" // 用户联系客服发起的解约
)
View Source
const (
	TransferNoCheck    = "NO_CHECK"    // 不校验真实姓名
	TransferForceCheck = "FORCE_CHECK" // 强校验真实姓名
)
View Source
const (
	TransferStatusProcessing = "PROCESSING" // 处理中
	TransferStatusSuccess    = "SUCCESS"    // 转账成功
	TransferStatusFailed     = "FAILED"     // 转账失败
	TransferStatusBankFail   = "BANK_FAIL"  // 银行退票
)
View Source
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" // 税务刮奖
)
View Source
const (
	RedpackStatusSending   = "SENDING"   // 发放中
	RedpackStatusSent      = "SENT"      // 已发放待领取
	RedpackStatusFailed    = "FAILED"    // 发放失败
	RedpackStatusReceived  = "RECEIVED"  // 已领取
	RedpackStatusRefunding = "RFUND_ING" // 退款中
	RedpackStatusRefund    = "REFUND"    // 已退款
)
View Source
const (
	RedpackTypeNormal = "NORMAL" // 普通红包
	RedpackTypeGroup  = "GROUP"  // 裂变红包
)
View Source
const (
	RedpackSendTypeAPI      = "API"      // 通过API接口发放
	RedpackSendTypeUpload   = "UPLOAD"   // 通过上传文件方式发放
	RedpackSendTypeActivity = "ACTIVITY" // 通过活动方式发放
)
View Source
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

View Source
const (
	RefundApplyURL = "https://api.mch.weixin.qq.com/secapi/pay/refund" // 申请退款
	RefundQueryURL = "https://api.mch.weixin.qq.com/pay/refundquery"   // 退款查询
)

URL - refund

View Source
const (
	PappayAPPEntrustURL     = "https://api.mch.weixin.qq.com/papay/preentrustweb"  // APP纯签约
	PappayOAEntrustURL      = "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" // 申请解约
	PappayApplyURL          = "https://api.mch.weixin.qq.com/pay/pappayapply"      // 申请扣款
	PappayOrderQueryURL     = "https://api.mch.weixin.qq.com/pay/paporderquery"    // 扣款查询
)

URL - pappay

View Source
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

View Source
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"         // 红包查询
)

URL - redpack

View Source
const RSAPublicKeyURL = "https://fraud.mch.weixin.qq.com/risk/getpublickey"

Variables

This section is empty.

Functions

func APPEntrust

func APPEntrust(c *Contract) wx.Action

APPEntrust APP纯签约

func CloseOrder

func CloseOrder(outTradeNO string) wx.Action

CloseOrder 关闭订单【注意:订单生成后不能马上调用关单接口,最短调用时间间隔为5分钟。】

func DeleteContractByCode

func DeleteContractByCode(planID, contractCode, remark string) wx.Action

DeleteContractByCode 根据签约协议号解约,需要商户平台配置的代扣模版id

func DeleteContractByID

func DeleteContractByID(contractID, remark string) wx.Action

DeleteContractByID 根据微信返回的委托代扣协议id解约

func EntrustByOrder

func EntrustByOrder(order *ContractOrder) wx.Action

EntrustByOrder 支付中签约

func H5Entrust

func H5Entrust(c *Contract) wx.Action

H5Entrust H5纯签约

func MPEntrust

func MPEntrust(c *Contract) wx.Action

MPEntrust 小程序纯签约,返回小程序所需的 extraData 数据

func OAEntrust

func OAEntrust(c *Contract) wx.Action

OAEntrust 公众号纯签约

func PappayApply

func PappayApply(data *PappayData) wx.Action

PappayApply 申请扣款

func QueryContractByCode

func QueryContractByCode(planID, contractCode string) wx.Action

QueryContractByCode 根据签约协议号查询签约关系,需要商户平台配置的代扣模版id

func QueryContractByID

func QueryContractByID(contractID string) wx.Action

QueryContractByID 根据微信返回的委托代扣协议id查询签约关系

func QueryOrderByOutTradeNO

func QueryOrderByOutTradeNO(outTradeNO string) wx.Action

QueryOrderByOutTradeNO 根据商户订单号查询

func QueryOrderByTransactionID

func QueryOrderByTransactionID(transactionID string) wx.Action

QueryOrderByTransactionID 根据微信订单号查询

func QueryPappayByOutTradeNO

func QueryPappayByOutTradeNO(outTradeNO string) wx.Action

QueryPappayByOutTradeNO 根据商户订单号查询扣款信息

func QueryPappayByTransactionID

func QueryPappayByTransactionID(transactionID string) wx.Action

QueryPappayByTransactionID 根据微信订单号查询扣款信息

func QueryRedpackByBillNO

func QueryRedpackByBillNO(billNO string) wx.Action

QueryRedpackByBillNO 查询红包记录

func QueryRefundByOutRefundNO

func QueryRefundByOutRefundNO(outRefundNO string, offset ...int) wx.Action

QueryRefundByOutRefundNO 根据商户退款单号查询退款信息

func QueryRefundByOutTradeNO

func QueryRefundByOutTradeNO(outTradeNO string, offset ...int) wx.Action

QueryRefundByOutTradeNO 根据商户订单号查询退款信息

func QueryRefundByRefundID

func QueryRefundByRefundID(refundID string, offset ...int) wx.Action

QueryRefundByRefundID 根据微信退款单号查询退款信息

func QueryRefundByTransactionID

func QueryRefundByTransactionID(transactionID string, offset ...int) wx.Action

QueryRefundByTransactionID 根据微信订单号查询退款信息

func QueryTransferBalanceOrder

func QueryTransferBalanceOrder(partnerTradeNO string) wx.Action

QueryTransferBalanceOrder 查询付款到零钱订单

func QueryTransferBankCardOrder

func QueryTransferBankCardOrder(partnerTradeNO string) wx.Action

QueryTransferBankCardOrder 查询付款到银行卡订单

func RSAPublicKey

func RSAPublicKey() wx.Action

RSAPublicKey 获取RSA加密公钥

func RefundByOutTradeNO

func RefundByOutTradeNO(outTradeNO string, data *RefundData) wx.Action

RefundByOutTradeNO 根据商户订单号退款

func RefundByTransactionID

func RefundByTransactionID(transactionID string, data *RefundData) wx.Action

RefundByTransactionID 根据微信订单号退款

func SendGroupRedpack

func SendGroupRedpack(data *RedpackData) wx.Action

SendGroupRedpack 发放裂变红包

func SendMinipRedpack

func SendMinipRedpack(data *RedpackData) wx.Action

SendMinipRedpack 发放小程序红包

func SendNormalRedpack

func SendNormalRedpack(data *RedpackData) wx.Action

SendNormalRedpack 发放普通红包

func TransferToBalance

func TransferToBalance(data *TransferBalanceData) wx.Action

TransferToBalance 付款到零钱【注意:当返回错误码为“SYSTEMERROR”时,请务必使用原商户订单号重试,否则可能造成重复支付等资金风险。】

func TransferToBankCard

func TransferToBankCard(data *TransferBankCardData, publicKey []byte) wx.Action

TransferToBankCard 付款到银行卡【注意:当返回错误码为“SYSTEMERROR”时,请务必使用原商户订单号重试,否则可能造成重复支付等资金风险。】

func UnifyOrder

func UnifyOrder(data *OrderData) wx.Action

UnifyOrder 统一下单

Types

type CDATA

type CDATA string

CDATA XML CDATA section which is defined as blocks of text that are not parsed by the parser, but are otherwise recognized as markup.

func (CDATA) MarshalXML

func (c CDATA) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML encodes the receiver as zero or more XML elements.

type Contract

type Contract struct {
	// 必填字段
	PlanID                 string // 协议模板id,设置路径见开发步骤
	ContractCode           string // 商户侧的签约协议号,由商户生成
	RequestSerial          int64  // 商户请求签约时的序列号,要求唯一性,纯数字, 范围不能超过Int64的范围
	ContractDisplayAccount string // 签约用户的名称,用于页面展示,参数值不支持UTF8非3字节编码的字符,如表情符号,故请勿使用微信昵称
	SpbillCreateIP         string // 用户客户端的真实IP地址,H5签约必填
	Timestamp              int64  // 系统当前时间戳,10位
	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可被微信识别,则跳转到浏览器,否则留在微信
}

Contract 微信纯签约协议

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 Mch

type Mch struct {
	// contains filtered or unexported fields
}

Mch 微信支付

func New

func New(appid, mchid, apikey string) *Mch

New returns new wechat pay

func (*Mch) APPAPI

func (mch *Mch) APPAPI(prepayID string) wx.WXML

APPAPI 用于APP拉起支付

func (*Mch) DecryptWithAES256ECB

func (mch *Mch) DecryptWithAES256ECB(encrypt string) (wx.WXML, error)

DecryptWithAES256ECB AES-256-ECB解密(主要用于退款结果通知)

func (*Mch) Do

func (mch *Mch) Do(ctx context.Context, action wx.Action, options ...wx.HTTPOption) (wx.WXML, error)

Do exec action

func (*Mch) JSAPI

func (mch *Mch) JSAPI(prepayID string) wx.WXML

JSAPI 用于JS拉起支付

func (*Mch) LoadCertFromP12File

func (mch *Mch) LoadCertFromP12File(path string) error

LoadCertFromP12File load cert from p12(pfx) file

func (*Mch) LoadCertFromPemBlock

func (mch *Mch) LoadCertFromPemBlock(certPEMBlock, keyPEMBlock []byte) error

LoadCertFromPemBlock load cert from a pair of PEM encoded data

func (*Mch) LoadCertFromPemFile

func (mch *Mch) LoadCertFromPemFile(certFile, keyFile string) error

LoadCertFromPemFile load cert from PEM file

func (*Mch) MinipRedpackJSAPI

func (mch *Mch) MinipRedpackJSAPI(pkg string) wx.WXML

MinipRedpackJSAPI 小程序领取红包

func (*Mch) SignWithHMacSHA256

func (mch *Mch) SignWithHMacSHA256(m wx.WXML, toUpper bool) string

SignWithHMacSHA256 生成HMAC-SHA256签名

func (*Mch) SignWithMD5

func (mch *Mch) SignWithMD5(m wx.WXML, toUpper bool) string

SignWithMD5 生成MD5签名

func (*Mch) VerifyWXMLResult

func (mch *Mch) VerifyWXMLResult(m wx.WXML) error

VerifyWXMLResult 微信请求/回调通知签名验证

type OrderData

type OrderData 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 // 该字段用于上报支付的场景信息
}

OrderData 统一下单数据

type PappayData

type PappayData 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   // 是否在支付成功消息和支付详情页中出现开票入口,注:需要在微信支付商户平台或微信公众平台开通电子发票功能
}

PappayData 扣款数据

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 // 备注信息
	// 选填参数
	SceneID  string // 发放红包使用场景,红包金额大于200或者小于1元时必传
	RiskInfo string // 活动信息,urlencode(posttime=xx&mobile=xx&deviceid=xx。posttime:用户操作的时间戳;mobile:业务系统账号的手机号,国家代码-手机号,不需要+号;deviceid:MAC地址或者设备唯一标识;clientversion:用户操作的客户端版本
}

RedpackData 红包发放数据

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 CDATA    `xml:"return_code"`
	ReturnMsg  CDATA    `xml:"return_msg"`
}

Reply 回复支付结果

func ReplyFail

func ReplyFail(msg string) *Reply

ReplyFail 回复失败

func ReplyOK

func ReplyOK() *Reply

ReplyOK 回复成功

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]或字母[action~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 付款到银行卡数据

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL