package front import ( "encoding/json" ) /* XinYeOrderRequest 请求结构体 | 参数名称 | 类型 | 说明 | 是否必须 | | :--------------------- | :----------- | :----------------------------------------------------------- | :------- | | sAppId | String(24) | 应用Id | Y | | txnType | String(8) | 交易类型 | Y | | prodId | String(20) | 产品码 | Y | | eventId | String(8) | 事件码 | N | | accessType | String(4) | 接入方式:H5-小程序、公众号,SDK - APP渠道,API - 接口输出 | Y | | mchtId | String(16) | 交易商户号 | Y | | mchtUserId | String(32) | BU侧用户编号 | Y | | mchtOrderId | String(32) | BU商户侧订单号 | Y | | mchtOrderDateTime | String(14) | BU商户侧订单时间:14位,格式"20220330143021" | Y | | mchtActivityInfo | String(1024) | BU场景侧活动信息域:base64编码的JSON串 | N | | mchtCouponInfo | String(1024) | BU场景侧券工具信息域:base64编码的JSON串 | N | | mchtOrderAmt | String(20) | 订单金额:2位小数,单位元 | Y | | mchtTxnAmt | String(20) | 交易金额:2位小数,单位元 | Y | | mainPayType | String(2) | 主支付工具类型:01-本金;02-分期;03-积分借记积分;04-贵宾积点;05-积分贷记积分;06-本金+积分贷记积分 | Y | | ccyType | String(3) | 币种:156-人民币 | Y | | installmentsCount | String(4) | 分期数:分期字段,分期必输;3-3期;6-6期;9-9期;12-12期 | N | | installmentsGoodsId | String(64) | 分期商品Id:分期字段,分期必输 | N | | installmentsUnitAmount | String(20) | 分期单价:分期字段,分期必输:2位小数,单位元 | N | | installmentsAmtFee | String(20) | 分期手续费:分期字段,分期必输:3位小数,单位元 | N | | pointType | String(4) | 积分类型:积分字段,积分支付必输;0-储蓄卡;1-信用卡;2-贵宾积点 | N | | integral | String(16) | 抵扣积分值:积分,积点字段,积分积点支付必输 | N | | bindCardInfo | String(1024) | 绑卡信息域:base64编码的JSON串 | N | | secOrderInfo | String(4096) | 子订单信息域:base64编码的JSON串 | N | | riskInfo | String(1024) | 风险控制域:base64编码的JSON串 | N | | buRealFlag | String(1) | BU是否实名:0-未实名;1-实名 | Y | | certNo | String(18) | 用户证件号:BU实名的时候,必输 | N | | userName | String(32) | 用户姓名:BU实名的时候,必输 | N | | userPhone | String(11) | 手机号:BU实名的时候,必输 | N | | frontEndUrl | String(256) | BU前端跳转地址 | Y | | orderRemark | String(256) | 订单备注 | Y | | txnAttach | String(1024) | 交易请求附加域 | N | | limitRuleInfo | String(1024) | 限制规则域 | N | */ type XinYeOrderRequest struct { SAppId string `json:"sAppId"` TxnType string `json:"txnType"` ProdId string `json:"prodId"` AccessType string `json:"accessType"` MchtId string `json:"mchtId"` MchtUserId string `json:"mchtUserId"` MchtOrderId string `json:"mchtOrderId"` MchtOrderDateTime string `json:"mchtOrderDateTime"` MchtOrderAmt string `json:"mchtOrderAmt"` MchtTxnAmt string `json:"mchtTxnAmt"` MainPayType string `json:"mainPayType"` CcyType string `json:"ccyType"` BuRealFlag string `json:"buRealFlag"` FrontEndUrl string `json:"frontEndUrl"` OrderRemark string `json:"orderRemark"` } /* XinYeOrderResponse | 参数名称 | 类型 | 说明 | 是否必须 | | :---------- | :--------- | :------------------------------- | :------- | | code | String(6) | 响应码:000000:成功 其他失败 | Y | | msg | String(64) | 响应信息 | Y | | rccsSuccess | String(10) | 成功失败标志:true成功,false失败 | Y | | payInfo | Struct | 支付信息 | N | */ type XinYeOrderResponse struct { Code string `json:"code"` Msg string `json:"msg"` RccsSuccess string `json:"rccsSuccess"` PayInfo payInfo `json:"payInfo"` } type XinYeOrderQueryResponse struct { Code string `json:"code"` Msg string `json:"msg"` RccsSuccess string `json:"rccsSuccess"` OrderInfo OrderInfo `json:"orderInfo"` } type OrderInfo struct { TxnStatus string `json:"txnStatus"` } /* | payToken | String(128) | 收银台链接:收银台token | Y | | :---------------- | :---------- | :------------------------------------------- | :--- | | payTokenTime | String(4) | 订单过期时间:30,单位分 | Y | | txnOrderId | String(32) | 业务受理订单号 | Y | | txnOrderTime | String(14) | 业务交易订单时间:14位,格式"20220330143021" | Y | | mchtOrderId | String(32) | BU商户侧订单号 | Y | | mchtOrderDateTime | String(14) | BU商户侧订单时间:14位,格式"20220330143021" | Y | */ type payInfo struct { PayToken string `json:"payToken"` PayTokenTime string `json:"payTokenTime"` TxnOrderId string `json:"txnOrderId"` TxnOrderTime string `json:"txnOrderTime"` MchtOrderId string `json:"mchtOrderId"` } type XinYeOrderQueryRequest struct { SAppId string `json:"sAppId"` TxnType string `json:"txnType"` ProdId string `json:"prodId"` AccessType string `json:"accessType"` MchtId string `json:"mchtId"` OriMchtOrderId string `json:"oriMchtOrderId"` } func (this *XinYeOrderRequest) ToMap() (resultMap map[string]string) { // Marshal the struct to JSON, ignoring omitempty fields. jsonBytes, err := json.Marshal(this) if err != nil { return } // Unmarshal the JSON into a map to get the final result. err = json.Unmarshal(jsonBytes, &resultMap) if err != nil { return } return resultMap }