288 lines
27 KiB
Go
288 lines
27 KiB
Go
package lakala
|
||
|
||
const (
|
||
PayTestUrl = "https://test.wsmsd.cn/sit/api/v3/" // 收银订单创建测试地址
|
||
PayProdUrl = "https://s2.lakala.com/api/v3" // 收银订单创建正式地址
|
||
|
||
PayActive = "labs/trans/preorder" // 主扫聚合
|
||
PayMicropayActive = "labs/trans/micropay" // 聚合被扫
|
||
RefundActive = "labs/relation/refund" // 主扫退款
|
||
PayQueryActive = "labs/query/tradequery" // 支付查询
|
||
ClosePayActive = "labs/relation/close" // 主扫关单
|
||
)
|
||
|
||
const (
|
||
PayStatusINIT = "INIT" // 初始化
|
||
PayStatusCREATE = "CREATE" // 下单成功
|
||
PayStatusSUCCESS = "SUCCESS" // 交易成功
|
||
PayStatusFAIL = "FAIL" // 交易失败
|
||
PayStatusDEAL = "DEAL" // 交易处理中
|
||
PayStatusUNKNOWN = "UNKNOWN" // 未知状态
|
||
PayStatusCLOSE = "CLOSE" // 订单关闭
|
||
PayStatusPARTREFUND = "PART_REFUND" // 部分退款
|
||
PayStatusREFUND = "REFUND" // 全部退款
|
||
PayStatusREVOKED = "REVOKED" // 订单撤销
|
||
)
|
||
|
||
// AggregatePayReq 聚合主扫参数
|
||
type AggregatePayReq struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
TermNo string `json:"term_no"` // 终端号 M String(32) 拉卡拉分配的业务终端号
|
||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号 M String(32) 商户系统唯一,对应数据库表中外部请求流水号。
|
||
AccountType string `json:"account_type"` // 钱包类型 M String(32) 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING 拉卡拉支付账户:LKLACC 网联小钱包:NUCSPAY 京东钱包:JD
|
||
TransType string `json:"trans_type"` // 接入方式 M String(2) 41:NATIVE((ALIPAY,云闪付支持,京东白条分期)51:JSAPI(微信公众号支付,支付宝服务窗支付,银联JS支付,翼支付JS支付, 拉卡拉钱包支付, 支付宝小程序支付)71:微信小程序支付61:APP支付(微信APP支付)
|
||
TotalAmount string `json:"total_amount"` // 金额 M String(12) 单位分,整数型字符
|
||
LocationInfo LocationInfoObj `json:"location_info"` // 地址位置信息 M Object 地址位置信息,风控要求必送
|
||
BusiMode string `json:"busi_mode"` // 业务模式 C String(8) 业务模式: ACQ-收单 不填,默认为“ACQ-收单”
|
||
Subject string `json:"subject"` // 订单标题 C String(42) 标题,用于简单描述订单或商品主题,会传递给账户端 (账户端控制,实际最多42个字符),微信支付必送。
|
||
PayOrderNo string `json:"pay_order_no"` // 支付业务订单号 C String(64) 拉卡拉订单系统订单号,以拉卡拉支付业务订单号为驱动的支付行为,需上传该字段。
|
||
NotifyUrl string `json:"notify_url"` // 商户通知地址 C String(128) 商户通知地址,如果上传,且 pay_order_no 不存在情况下,则按此地址通知商户(详见“[交易通知]”接口)
|
||
SettleType string `json:"settle_type"` // 结算类型 C String(4) “0”或者空,常规结算方式,如需接拉卡拉分账通需传“1”,商户未开通分账之前切记不用上送此参数。
|
||
Remark string `json:"remark"` // 备注 C String(128)
|
||
PnrInsIdCd string `json:"pnr_ins_id_cd"` // 服务商机构标识码 C String(11) 银联分配的服务商机构标识码
|
||
AccBusiFields interface{} `json:"acc_busi_fields"` // 账户端业务信息域 (微信小程序支付-71、公众号支付-51 必传) C Object 参见以下acc_busi_fields字段详细说明,不同的account_type和trans_type,需要传入的参数不一样
|
||
CompleteNotifyUrl string `json:"complete_notify_url"` // 发货确认通知地址 C String(128) 发货类小程序确认收获后通知商户的地址
|
||
}
|
||
|
||
type LocationInfoObj struct {
|
||
RequestIp string `json:"request_ip"` // 请求方IP地址 M String(64) 请求方的IP地址,存在必填,格式如36.45.36.95
|
||
BaseStation string `json:"base_station"` // 基站信息 C String(128) 客户端设备的基站信息(主扫时基站信息使用该字段)
|
||
Location string `json:"location"` // 纬度, 经度 C String(32)商户终端的地理位置,银联二维码交易必填,整体格式:纬度, 经度,+表示北纬、东经,-表示南纬、 西经。经度格式:1位正负号+3位整数+1位小数点+5位小数;纬度格式:1位正负号+2位整数+1位小数点+6位小数;举例:+31.221345, +121.12345
|
||
}
|
||
|
||
// AccBusiFieldsByWeChat acc_busi_fields 只有微信小程序和公众号支付时需要此参数
|
||
type AccBusiFieldsByWeChat struct {
|
||
TimeoutExpress string `json:"timeout_express"` // 预下单有效时间 C String(2) 预下单的订单的有效时间,以分钟为单位。建议不超过15分钟。不传值则默认5分钟。(微信主扫下单上送的失效时间,是控制prepay_id调起支付的有效时间。微信后台不会根据失效时间发起关单。 如需关单,调用关单接口。)
|
||
SubAppid string `json:"sub_appid"` // 子商户公众账号ID C String(32) 微信分配的子商户公众账号ID,sub_appid(即微信小程序支付-71、公众号支付-51、微信app支付-61),此参数必传,只对微信支付有效 工行数字钱包情况下,该字段上送工行的openId 拉卡拉钱包情况下,该字段上送LAKALA的userId
|
||
UserId string `json:"user_id"` // 用户标识 C String(64) 用户在子商户sub_appid下的唯一标识,sub_openid,(即微信小程序支付-71、众号支付-51),此参数必传,只对微信支付有效
|
||
Detail string `json:"detail"` // 商品详情 WeChatDetail C String(1024) 单品优惠功能字段,详见下文说明
|
||
GoodsTag string `json:"goods_tag"` // 订单优惠标记 C String(32) 订单优惠标记,微信平台配置的商品标记,用于优惠券或者满减使用,accountType为WECHAT时,可选填此字段
|
||
Attach string `json:"attach"` // 附加域 C String(128) 该字段主要用于商户携带订单的自定义数据。商户定制字段,直接送到账户端。
|
||
DeviceInfo string `json:"device_info"` // 设备号 C String(32) 终端设备号(门店号或收银设备ID),注意:PC网页或JSAPI支付请传”WEB”
|
||
LimitPay string `json:"limit_pay"` // 指定支付方式 C String(20) no_credit–指定不能使用信用卡支付
|
||
SceneInfo string `json:"scene_info"` // 场景信息 C String(256) 该字段用于上报场景信息,目前支持上报实际门店信息。
|
||
LimitPayer string `json:"limit_payer"` // 限定支付 C String(8) ADULT:成年人
|
||
}
|
||
|
||
// WeChatDetail 微信支付商品详情
|
||
type WeChatDetail struct {
|
||
CostPrice string `json:"cost_price"` // C String(12) 1.商户侧一张小票订单可能被分多次支付,订单原 价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以 享受多次优惠的情况,正常支付订单不必上传此参 数。 如:608800
|
||
ReceiptId string `json:"receipt_id"` // C String(12) 商家小票 ID
|
||
GoodsDetail []WeChatGoodsDetail `json:"goods_detail"` // M Object 单品信息,使用Json数组格式提交,见示例
|
||
}
|
||
|
||
type WeChatGoodsDetail struct {
|
||
GoodsId string `json:"goods_id"` // M String(32) 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。如“商品编码”
|
||
WxpayGoodsId string `json:"wxpay_goods_id"` // C String(32) 微信支付定义的统一商品编号
|
||
GoodsName string `json:"goods_name"` // C String(256) 商品的实际名称
|
||
Quantity int `json:"quantity"` // M int 用户购买的数量
|
||
PriceM int `json:"price_m"` // 单位为:分。如果商户有优惠,需传输商户优惠后的单价
|
||
}
|
||
|
||
// AccBusiFieldsByAliPay acc_busi_fields 支付宝支付
|
||
type AccBusiFieldsByAliPay struct {
|
||
UserId string `json:"user_id"` // 用户标识 C String(64) 用户在子商户sub_appid下的唯一标识,sub_openid,(即微信小程序支付-71、众号支付-51),此参数必传,只对微信支付有效
|
||
TimeoutExpress string `json:"timeout_express"` // 预下单有效时间 C String(2) 预下单的订单的有效时间,以分钟为单位。建议不超过15分钟。不传值则默认5分钟。(微信主扫下单上送的失效时间,是控制prepay_id调起支付的有效时间。微信后台不会根据失效时间发起关单。 如需关单,调用关单接口。)
|
||
ExtendParams interface{} `json:"extend_params"` // 支付宝业务扩展参数 ,见说明
|
||
GoodsDetail interface{} `json:"goods_detail"`
|
||
StoreId string `json:"store_id"`
|
||
DisablePayChannels string `json:"disable_pay_channels"`
|
||
BusinessParams string `json:"business_params"`
|
||
MinAge string `json:"min_age"`
|
||
PromoParams interface{} `json:"promo_params"`
|
||
PriorityPayAssets interface{} `json:"priority_pay_assets"`
|
||
}
|
||
|
||
// AggregatePayResp 请求支付响应报文
|
||
type AggregatePayResp struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号(请求接口中商户号)
|
||
OutTradeNo string `json:"out_trade_no"` // 商户请求流水号 M String(32) 请求报文中的商户请求流水号
|
||
TradeNo string `json:"trade_no"` // 拉卡拉交易流水号 M String(32) 拉卡拉交易流水号
|
||
LogNo string `json:"log_no"` // 拉卡拉对账单流水号 M String(14) 拉卡拉对账单流水号
|
||
SettleMerchantNo string `json:"settle_merchant_no"` // 结算商户号 M String(32) 拉卡拉分配的商户号
|
||
SettleTermNo string `json:"settle_term_no"` // 结算终端号 M String(32) 拉卡拉分配的业务终端号
|
||
AccRespFields interface{} `json:"acc_resp_fields"` // 账户端返回信息域 C Object 账户端返回信息域
|
||
}
|
||
|
||
// AccRespFieldsAliNative 阿里_NATIVE 支付返回
|
||
type AccRespFieldsAliNative struct {
|
||
Code string `json:"code"` // 二维码信息 M String(256) 商户可用此参数自定义去生成二维码后展示出来进行扫码支付
|
||
CodeImage string `json:"code_image"` // 二维码图片内容 M String(256) 商户收款二维码图片。Base64编码,暂无
|
||
SubMchId string `json:"sub_mch_id"` // 子商户号 C String(20) 账户端子商户号
|
||
}
|
||
|
||
// AccRespFieldsAliJSAPI 阿里_JSAPI
|
||
type AccRespFieldsAliJSAPI struct {
|
||
PrepayId string `json:"prepay_id"` // 预下单Id M String(32) 预支付交易会话ID
|
||
SubMchId string `json:"sub_mch_id"` // 子商户号 C String(20) 账户端子商户号
|
||
}
|
||
|
||
// AccRespFieldsWechatJSAPIAndMin 微信(71-小程序)微信(51-JSAPI)场景下
|
||
type AccRespFieldsWechatJSAPIAndMin struct {
|
||
PrepayId string `json:"prepay_id"` // 预下单Id M String(32) 预支付交易会话ID
|
||
PaySign string `json:"pay_sign"` // 支付签名信息 M String(256) 签名
|
||
AppId string `json:"app_id"` // 小程序id M String(32) 商户注册具有支付权限的小程序成功后即可获得小程序id
|
||
TimeStamp string `json:"time_stamp"` // 时间戳 M String(32) 当前的时间
|
||
NonceStr string `json:"nonce_str"` // 随机字符串 M String(32) 随机字符串
|
||
Package string `json:"package"` // 订单详情扩展字符串 M String(128)
|
||
SignType string `json:"sign_type"` // 签名方式 M String(32) 签名类型,支持RSA
|
||
SubMchId string `json:"sub_mch_id"` // 子商户号 C String(20) 账户端子商户号
|
||
}
|
||
|
||
// AccRespFieldsUQRCodeAndJdPay 银联京东41-NATIVE 支付返回
|
||
type AccRespFieldsUQRCodeAndJdPay struct {
|
||
Code string `json:"code"` // 二维码信息 M String(256) 商户可用此参数自定义去生成二维码后展示出来进行扫码支付
|
||
}
|
||
|
||
// AccRespFieldsUQRCodeJsApi 银联JSAPI支付
|
||
type AccRespFieldsUQRCodeJsApi struct {
|
||
RedirectUrl string `json:"redirect_url"` // 银联JS支付重定向地址 M String(256) 银联JS支付返回重定向地址
|
||
SubMchId string `json:"sub_mch_id"` // 子商户号 C String(20) 账户端子商户号
|
||
}
|
||
|
||
// AccRespFieldsBestPayJsApi 银联JSAPI支付
|
||
type AccRespFieldsBestPayJsApi struct {
|
||
BestPayInfo string `json:"best_pay_info"` // 翼支付JS参数 C String(512) 翼支付JS参数(老网联) best_pay_info、redirect_url两者有其一
|
||
RedirectUrl string `json:"redirect_url"` // 翼支付支付重定向地址 C String(256) 翼支付支付重定向地址(新网联)
|
||
}
|
||
|
||
// AccRespFieldsWechatApp 微信app支付
|
||
type AccRespFieldsWechatApp struct {
|
||
PrepayId string `json:"prepay_id"` // 预下单Id M String(32) 预支付交易会话ID
|
||
PaySign string `json:"pay_sign"` // 支付签名信息 M String(256) 签名
|
||
AppId string `json:"app_id"` // 移动应用appid M String(32) 商户注册具有支付权限的安卓/IOSAPP成功后即可获得移动应用appid
|
||
TimeStamp string `json:"time_stamp"` // 时间戳 M String(32) 当前的时间
|
||
NonceStr string `json:"nonce_str"` // 随机字符串 M String(32) 随机字符串
|
||
Package string `json:"package"` // 订单详情扩展字符串 M String(128)
|
||
SignType string `json:"sign_type"` // 签名方式 M String(32) 签名类型,支持RSA
|
||
PartnerId string `json:"partner_id"` // 从业机构号 M String(32)
|
||
SubMchId string `json:"sub_mch_id"` // 子商户号 C String(20) 账户端子商户号
|
||
}
|
||
|
||
// AggregateRefundReq 主扫退款参数
|
||
type AggregateRefundReq struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
TermNo string `json:"term_no"` // 终端号 M String(32) 拉卡拉分配的业务终端号
|
||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号 M String(32) 商户系统唯一,对应数据库表中外部请求流水号。
|
||
RefundAmount string `json:"refund_amount"` // 退款金额 M String(12) 单位分,整数数字型字符
|
||
RefundReason string `json:"refund_reason"` // 退款原因 C String(32) 退款原因描述
|
||
OriginOutTradeNo string `json:"origin_out_trade_no"` // 原商户请求流水号
|
||
OriginTradeNo string `json:"origin_trade_no"` // 原拉卡拉交易流水号 C String(32) 下单成功时,返回的拉卡拉交易流水。 origin_out_trade_no、origin_log_no、origin_trade_no至少一个必填,(调用收银台下单接口拉起交易后发起退款时至少要传两个),同时存在时优先级顺序如下: origin_trade_no、origin_log_no、origin_out_trade_no。
|
||
OriginLogNo string `json:"origin_log_no"` // 原对账单流水号 C String(14) 对账单中的交易流水。 origin_out_trade_no、origin_log_no、origin_trade_no至少一个必填,(调用收银台下单接口拉起交易后发起退款时至少要传两个),同时存在时优先级顺序如下: origin_trade_no、origin_log_no、origin_out_trade_no。
|
||
LocationInfo LocationInfoObj `json:"location_info"` // 地址位置信息 M Object 地址位置信息,风控要求必送
|
||
}
|
||
|
||
// AggregateRefundResp 主扫退款响应参数
|
||
type AggregateRefundResp struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
OutTradeNo string `json:"out_trade_no"` // 请求中的商户请求流水号
|
||
TradeNo string `json:"trade_no"` // 拉卡拉交易流水号
|
||
LogNo string `json:"log_no"` // 拉卡拉对账单流水号
|
||
AccTradeNo string `json:"acc_trade_no"` // 账户端交易流水号
|
||
AccountType string `json:"account_type"` // 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING
|
||
TotalAmount string `json:"total_amount"` // 单位分,整数数字型字符串
|
||
RefundAmount string `json:"refund_amount"` // 单位分,整数数字型字符串
|
||
PayerAmount string `json:"payer_amount"` // 单位分,整数数字型字符串
|
||
TradeTime string `json:"trade_time"` // 实际退款时间。yyyyMMddHHmmss
|
||
OriginTradeNo string `json:"origin_trade_no"` // 如果请求中携带,则返回
|
||
OriginOutTradeNo string `json:"origin_out_trade_no"` // 如果请求中携带,则返回
|
||
UpIssAddnData string `json:"up_iss_addn_data"` // 参与单品营销优惠时返回
|
||
UpCouponInfo string `json:"up_coupon_info"` // 参与单品营销优惠时返回
|
||
TradeInfo string `json:"trade_info"` // 数字货币中行返回示例说明:[{“fundchannel”:”BOC”,”amount”:”18”}]
|
||
}
|
||
|
||
// PayStatusQueryReq 支付查询
|
||
type PayStatusQueryReq struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
TermNo string `json:"term_no"` // 终端号 M String(32) 拉卡拉分配的终端号
|
||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号 C String(32) 下单时的商户请求流水号 说明:out_trade_no、trade_no、必有其一。如果存在多个字段上送,优先级顺序如下: trade_no、 out_trade_no
|
||
TradeNo string `json:"trade_no"` // 拉卡拉交易流水号 C String(32) 拉卡拉交易流水号
|
||
}
|
||
|
||
type PayStatusQueryResp struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号(交易请求接口中商户号)
|
||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号 M String(64)
|
||
TradeNo string `json:"trade_no"` // 拉卡拉交易流水号 M String(32) 拉卡拉交易流水号
|
||
LogNo string `json:"log_no"` // 拉卡拉对账单流水号 M String(14) trade_no的后14位
|
||
TradeMainType string `json:"trade_main_type"` //交易大类 C String(32) PREORDER-主扫,MICROPAY-被扫,REFUND-退款,CANCEL-撤销,无-其它类型
|
||
SplitAttr string `json:"split_attr"` // 拆单属性 C String(1) 只有涉及合单交易时会出现:M-主单,S-子单
|
||
SplitInfo []SplitInfoList `json:"split_info"` //拆单信息 C List<> 如果查询订单是主单,则返回。见splitInfo字段说明。拆单信息见split_info域说明
|
||
TradeState string `json:"trade_state"` // 交易状态 M String(16) INIT-初始化 CREATE-下单成功 SUCCESS-交易成功 FAIL-交易失败 DEAL-交易处理中 UNKNOWN-未知状态 CLOSE-订单关闭 PART_REFUND-部分退款 REFUND-全部退款(或订单被撤销)
|
||
TradeStateDesc string `json:"trade_state_desc"` // 交易状态描述 C String(256) 交易状态描述
|
||
AccTradeNo string `json:"acc_trade_no"` // 账户端交易订单号 M String(32) 账户端交易订单号
|
||
AccountType string `json:"account_type"` // 钱包类型 M String(32) 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 苏宁易付宝: SUNING 数字人民币-DCPAY
|
||
TotalAmount string `json:"total_amount"` // 订单金额 M String(12) 单位分,整数数字型字符
|
||
PayerAmount string `json:"payer_amount"` // 付款人实付金额 C String(12) 付款人实付金额,单位分
|
||
AccSettleAmount string `json:"acc_settle_amount"` // 账户端结算金额 C String(12) 账户端应结订单金额,单位分 ,账户端应结订单金额=付款人实际发生金额+账户端优惠金额
|
||
AccMdiscountAmount string `json:"acc_mdiscount_amount"` // 商户侧优惠金额(账户端) C String(12) 商户优惠金额,单位分
|
||
AccDiscountAmount string `json:"acc_discount_amount"` // 账户端优惠金额 C String(12) 账户端优惠金额,单位分
|
||
AccOtherDiscountAmount string `json:"acc_other_discount_amount"` // 账户端其它优惠金额 C String(12) 账户端返回账户端其它优惠金额,单位分
|
||
TradeTime string `json:"trade_time"` // 交易完成时间 C String(14) 实际支付时间。yyyyMMddHHmmss
|
||
UserId1 string `json:"user_id1"` // 用户标识1 C String(128) 微信sub_open_id, 支付宝buyer_logon_id(买家支付宝账号)
|
||
UserId2 string `json:"user_id2"` // 用户标识2 C String(128) 微信openId,支付宝buyer_user_id,银联user_id
|
||
BankType string `json:"bank_type"` // 付款银行 C String(128) 付款银行
|
||
CardType string `json:"card_type"` // 银行卡类型 C String(16) 00:借记 01:贷记 02:微信零钱 03:支付宝花呗 04:支付宝其他 05:数字货币 06:拉卡拉支付账户 99:未知 sha
|
||
AccActivityId string `json:"acc_activity_id"` // 活动 ID C String(32) 在账户端商户后台配置的批次 ID
|
||
TradeReqDate string `json:"trade_req_date"` // 交易请求日期 M String(8)
|
||
AccRespFields interface{} `json:"acc_resp_fields"` // 账户端返回信息域 C Object 账户端返回信息域
|
||
RefundSplitInfo []RefundSplitInfoObj `json:"refund_split_info"` // 合单退款拆单信息 C List<> 如果查询订单是退款主单,则返回。见refundSplitInfo字段说明。拆单信息见refund_split_info域说明
|
||
}
|
||
|
||
type SplitInfoList struct {
|
||
UbTradeNo string `json:"ub_trade_no"` // 子单交易流水号 M String(32) 子单交易流水号
|
||
SubLogNo string `json:"sub_log_no"` // 子单对账单流水号 M String(14) 子单对账单流水号
|
||
OutSubTradeNo string `json:"out_sub_trade_no"` // 外部子交易流水号 M String(32) 商户子交易流水号,商户号下唯一
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
MerchantName string `json:"merchant_name"` // 商户名称 M String(64) 商户名称
|
||
TermNo string `json:"term_no"` // 终端号 M String(32) 拉卡拉分配的业务终端号
|
||
Amount string `json:"amount"` // 金额 M String(12) 单位分,整数型字符
|
||
}
|
||
|
||
type RefundSplitInfoObj struct {
|
||
OutSubTradeNo string `json:"out_sub_trade_no"` // 外部子退款交易流水号 M String(32) 商户子交易流水号,商户号下唯一
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
TermNo string `json:"term_no"` // 终端号 M String(32) 拉卡拉分配的业务终端号
|
||
RefundAmount string `json:"refund_amount"` // 申请退款金额 M String(12) 单位分,整数型字符
|
||
SubTradeNo string `json:"sub_trade_no"` // 拉卡拉子交易流水号 C String(32)
|
||
SubLogNo string `json:"sub_log_no"` // 对账单子流水号 C String(14) sub_trade_no后14位
|
||
TradeState string `json:"trade_state"` // 子交易状态 C String(16) SUCCESS-交易成功 FAIL-交易失败
|
||
ResultCode string `json:"result_code"` // 处理结果码 C String(32)
|
||
ResultMsg string `json:"result_msg"` // 处理描述 C String(128)
|
||
}
|
||
|
||
// PayMicroPayReq 扫码支付
|
||
type PayMicroPayReq struct {
|
||
MerchantNo string `json:"merchant_no"` // 商户号 M String(32) 拉卡拉分配的商户号
|
||
TermNo string `json:"term_no"` // 终端号 M String(32) 拉卡拉分配的业务终端号
|
||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号 M String(32) 商户系统唯一,对应数据库表中外部请求流水号。
|
||
AuthCode string `json:"auth_code"` // M String(32) 扫码支付授权码,设备读取用户APP中的条码或者二维码信息,用户付款码条形码规则见说明
|
||
TotalAmount string `json:"total_amount"` // 单位分,整数型字符
|
||
LocationInfo LocationInfoObj `json:"location_info"` // 地址位置信息 M Object 地址位置信息,风控要求必送
|
||
NotifyUrl string `json:"notify_url"` // 商户通知地址,如上传,且 pay_order_no 不存在情况下,且支付响应报文是交易中状态的场景下,则按此地址通知商户
|
||
SettleType string `json:"settle_type"` // “0”或者空,常规结算方式;如需接拉卡拉分账通需传“1”,商户未开通分账之前切记不用上送此参数。
|
||
Subject string `json:"subject"` // 标题,用于简单描述订单或商品(账户端控制,实际最多42个字符),微信支付必送。
|
||
//busi_mode string `json:"busi_mode"` // 业务模式: ACQ-收单 不填,默认为“ACQ-收单”
|
||
//pay_order_no string `json:"pay_order_no"` // 拉卡拉订单系统订单号,以拉卡拉支付业务订单号为驱动的支付行为,需上传该字段。 订单交易下单,交易时上送订单系统订单号,交易流程中会校验有效性、判重
|
||
//remark string `json:"remark"`
|
||
//scan_type string `json:"scan_type"`
|
||
//acc_busi_fields interface{} `json:"acc_busi_fields"`
|
||
//pnr_ins_id_cd string `json:"pnr_ins_id_cd"`
|
||
}
|
||
|
||
type PayMicroPayResp struct {
|
||
NeedQuery string `json:"need_query"` // 是否需要发起查询 0=不需要 1=需要 当返回1时,代表订单处理中,商户需主动发起查询
|
||
OutTradeNo string `json:"out_trade_no"` // 商户交易流水号
|
||
TradeNo string `json:"trade_no"` // 拉卡拉交易流水号
|
||
LogNo string `json:"log_no"` // 拉卡拉对账单流水号
|
||
AccTradeNo string `json:"acc_trade_no"` // 账户端交易流水号
|
||
AccountType string `json:"account_type"` // 微信:WECHAT 支付宝:ALIPAY 银联:UQRCODEPAY 翼支付: BESTPAY 数字货币:DCPAY
|
||
TotalAmount string `json:"total_amount"` // 单位分,整数数字型字符 订单金额=付款人实际发生金额+商户优惠金额+账户端优惠金额
|
||
PayerAmount string `json:"payer_amount"` // 付款人实际发生金额
|
||
AccSettleAmount string `json:"acc_settle_amount"` // 应结订单金额,单位分 ,账户端应结订单金额=付款人实际发生金额+账户端优惠金额
|
||
AccMdiscountAmount string `json:"acc_mdiscount_amount"` // 账户端返回商户优惠金额,单位分
|
||
AccDiscountAmount string `json:"acc_discount_amount"` // 账户端返回账户端优惠金额,单位分
|
||
TradeTime string `json:"trade_time"` // 以账户端返回时间为准
|
||
BankType string `json:"bank_type"` // 付款银行
|
||
CardType string `json:"card_type"` // 00:借记 01:贷记 02:微信零钱 03:支付宝花呗 04:支付宝其他 05:数字货币 06:拉卡拉支付账户 99:未知
|
||
}
|