Documentation ¶
Index ¶
- Constants
- func TimeToNumericStr(t time.Time) string
- type CustomerInfo
- type MerchantInfo
- func (mi *MerchantInfo) Decrypt(src []byte) ([]byte, error)
- func (mi *MerchantInfo) Encrypt(src []byte) ([]byte, error)
- func (mi *MerchantInfo) EncryptCustomerInfo(ci CustomerInfo) ([]byte, error)
- func (mi *MerchantInfo) SerialNumber() string
- func (mi *MerchantInfo) Sign(src []byte) ([]byte, error)
- func (mi *MerchantInfo) Verify(src, sig []byte) error
- type OrderInfo
- type ReqParams
- type ReqRespose
- func EntrustCharge(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqRespose, err error)
- func EntrustEstablish(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqRespose, err error)
- func V3Bind(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
- func V3Charging(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
- func V3Remove(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
- func V3SendSms(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
Constants ¶
View Source
const ( // BaseHost 主机地址 BaseHost = `https://gateway.95516.com` // V3BaseHost 主机地址(Version 3.0) V3BaseHost = `https://unionpaysecure.com` // ReqBackTrans 建立委托:后台交易,只有同步应答 ReqBackTrans = `/gateway/api/backTransReq.do` // V3ReqBackTrans 建立委托:后台交易,只有同步应答(Version 3.0) V3ReqBackTrans = `/gateway/api/backTransRequest.do` )
View Source
const (
// CurrencyCodeCNY 人民币代码
CurrencyCodeCNY = 156
)
View Source
const (
// TimeFmtNumeric format of time to numeric
TimeFmtNumeric = `20060102150405`
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CustomerInfo ¶
type CustomerInfo struct { CardNo string `form:"cardNo" json:"cardNo" xml:"cardNo"` // 卡号 Phone string `form:"phone" json:"phone" xml:"phone"` // 手机号 CertifTp string `form:"certifTp" json:"certifTp" xml:"certifTp"` // 证件类型, 01 - 身份证 CertifID string `form:"certifId" json:"certifId" xml:"certifId"` // 证件号,15位身份证不校验尾号,18位会校验尾号 CustomerName string `form:"customerNm" json:"customerNm" xml:"customerNm"` // 姓名 Cvn2 string `form:"cvn2" json:"cvn2" xml:"cvn2"` // 信用卡安全码 Expired string `form:"expired" json:"expired" xml:"expired"` // 有效期,YYMM格式,持卡人卡面印的是MMYY的,请注意代码设置倒一下 }
CustomerInfo 客户信息
func (*CustomerInfo) String ¶
func (ci *CustomerInfo) String(encrypted []byte) string
type MerchantInfo ¶
type MerchantInfo struct { MerID string // 商户代码 Password string // 签名证书密码 Cert *x509.Certificate // 加密证书 PublicKey *rsa.PublicKey // 加密 Key PrivateKey *rsa.PrivateKey // 签名 Key }
MerchantInfo 商家信息
func NewMerchantInfo ¶
func NewMerchantInfo(merID, certPath, keyPath, password string) (mi *MerchantInfo, err error)
NewMerchantInfo 初始化商家信息
func (*MerchantInfo) Decrypt ¶
func (mi *MerchantInfo) Decrypt(src []byte) ([]byte, error)
Decrypt 解密
func (*MerchantInfo) Encrypt ¶
func (mi *MerchantInfo) Encrypt(src []byte) ([]byte, error)
Encrypt 加密
func (*MerchantInfo) EncryptCustomerInfo ¶
func (mi *MerchantInfo) EncryptCustomerInfo(ci CustomerInfo) ([]byte, error)
EncryptCustomerInfo 持卡人身份信息,敏感信息加密
func (*MerchantInfo) SerialNumber ¶
func (mi *MerchantInfo) SerialNumber() string
SerialNumber 证书序列号
type OrderInfo ¶
type OrderInfo struct { TxnType string // 交易类型 TxnSubType string // 交易子类 OrderID string // 商户订单号,8-32位数字字母,不能含“-”或“_” // TxnTime 订单发送时间,格式为YYYYMMDDhhmmss,取北京时间 TxnTime string TxnAmt int // 交易金额, 单位: 分 CurrencyCode int // 交易币种 NotifyURL string // 回调通知地址 }
OrderInfo 订单信息
type ReqParams ¶
type ReqParams struct { Version string `form:"version" json:"version" xml:"version"` // 版本号 Encoding string `form:"encoding" json:"encoding" xml:"encoding"` // 编码方式 SignMethod string `form:"signMethod" json:"signMethod" xml:"signMethod"` // 签名方法 TxnType string `form:"txnType" json:"txnType" xml:"txnType"` // 交易类型 TxnSubType string `form:"txnSubType" json:"txnSubType" xml:"txnSubType"` // 交易子类 BizType string `form:"bizType" json:"bizType" xml:"bizType"` // 业务类型 AccessType string `form:"accessType" json:"accessType" xml:"accessType"` // 接入类型 ChannelType string `form:"channelType" json:"channelType" xml:"channelType"` // 渠道类型 CurrencyCode int `form:"currencyCode" json:"currencyCode" xml:"currencyCode"` // 交易币种 CertID string `form:"certId" json:"certId" xml:"certId"` // 签名证书序列号 EncryptCertID string `form:"encryptCertId" json:"encryptCertId" xml:"encryptCertId"` // 验签证书序列号 MerID string `form:"merId" json:"merId" xml:"merId"` // 商户代码 OrderID string `form:"orderId" json:"orderId" xml:"orderId"` // 商户订单号 TxnTime string `form:"txnTime" json:"txnTime" xml:"txnTime"` // 订单发送时间 TxnAmt int `form:"txnAmt" json:"txnAmt" xml:"txnAmt"` // 交易金额,单位分 AccNo string `form:"accNo" json:"accNo" xml:"accNo"` // 卡号,敏感信息加密 Signature string `form:"signature" json:"signature" xml:"signature"` // 签名 BackURL string `form:"backUrl" json:"backUrl" xml:"backUrl"` // 后台通知地址 // 请求方保留域, // 透传字段,查询、通知、对账文件中均会原样出现,如有需要请启用并修改自己希望透传的数据。 // 出现部分特殊字符时可能影响解析,请按下面建议的方式填写: // 1. 如果能确定内容不会出现&={}[]"'等符号时,可以直接填写数据,建议的方法如下。 // 'reqReserved' =>'透传信息1|透传信息2|透传信息3', // 2. 内容可能出现&={}[]"'符号时: // 1) 如果需要对账文件里能显示,可将字符替换成全角&={}【】“‘字符(自己写代码,此处不演示); // 2) 如果对账文件没有显示要求,可做一下base64(如下)。 // 注意控制数据长度,实际传输的数据长度不能超过1024位。 // 查询、通知等接口解析时使用base64_decode解base64后再对数据做后续解析。 // 'reqReserved' => base64_encode('任意格式的信息都可以'), ReqReserved string `form:"reqReserved" json:"reqReserved" xml:"reqReserved"` // 透传字段 }
ReqParams 请求参数
func (*ReqParams) ToBody ¶
func (p *ReqParams) ToBody(mi *MerchantInfo, ci CustomerInfo) (body string, err error)
ToBody 请求参数转换为 HTTP POST 格式数据
type ReqRespose ¶
type ReqRespose struct { Encoding string `form:"encoding" json:"encoding" xml:"encoding"` Version string `form:"version" json:"version" xml:"version"` RespCode string `form:"respCode" json:"respCode" xml:"respCode"` // 响应代码, 0 成功, > 0 错误 RespMsg string `form:"respMsg" json:"respMsg" xml:"respMsg"` TxnType string `form:"txnType" json:"txnType" xml:"txnType"` ChannelType string `form:"channelType" json:"channelType" xml:"channelType"` CurrencyCode string `form:"currencyCode" json:"currencyCode" xml:"currencyCode"` TxnSubType string `form:"txnSubType" json:"txnSubType" xml:"txnSubType"` CustomerInfo string `form:"customerInfo" json:"customerInfo" xml:"customerInfo"` TxnAmt string `form:"txnAmt" json:"txnAmt" xml:"txnAmt"` SignPubKeyCert string `form:"signPubKeyCert" json:"signPubKeyCert" xml:"signPubKeyCert"` SignMethod string `form:"signMethod" json:"signMethod" xml:"signMethod"` AccNo string `form:"accNo" json:"accNo" xml:"accNo"` BackURL string `form:"backUrl" json:"backUrl" xml:"backUrl"` BizType string `form:"bizType" json:"bizType" xml:"bizType"` Signature string `form:"signature" json:"signature" xml:"signature"` OrderID string `form:"orderId" json:"orderId" xml:"orderId"` TxnTime string `form:"txnTime" json:"txnTime" xml:"txnTime"` AccessType int `form:"accessType" json:"accessType" xml:"accessType"` }
ReqRespose 请求返回数据
func EntrustCharge ¶
func EntrustCharge(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqRespose, err error)
EntrustCharge 代扣费用
func EntrustEstablish ¶
func EntrustEstablish(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqRespose, err error)
EntrustEstablish 建立委托
func V3Bind ¶
func V3Bind(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
V3Bind 验证绑定卡片(Version 3.0)
func V3Charging ¶
func V3Charging(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
V3Charging 代扣(Version 3.0)
func V3Remove ¶
func V3Remove(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
V3Remove 解除绑定卡片(Version 3.0)
func V3SendSms ¶
func V3SendSms(mi *MerchantInfo, ci CustomerInfo, oi OrderInfo) (res ReqRespose, err error)
V3SendSms 发送验证码(Version 3.0)
func (*ReqRespose) V3Ok ¶
func (res *ReqRespose) V3Ok() (ok bool, err error)
V3Ok 请求返回是否成功(Version 3.0)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.