This commit is contained in:
邹宗楠
2025-04-27 10:17:40 +08:00
parent cf38acc037
commit 1a5a3ffc29
14 changed files with 920 additions and 156 deletions

View File

@@ -0,0 +1,149 @@
package tonglianpayapi
//
//import (
// "crypto/md5"
// "fmt"
// "git.rosy.net.cn/baseapi/platformapi"
// "git.rosy.net.cn/baseapi/utils"
// "net/http"
// "strings"
//)
//
//const (
// TongLianMisPay = "https://cloudmiscash.allinpay.com/cloudMis-transaction" // 通联mis支付(基础收款用于一般无特殊支付业务需求的标准行业,如零售、餐饮类商户及场景)
// MisPayAction = "api/v2/process"
//)
//
//const (
// BusinessTypeBUSIORDERTRANS = "100000003" // 订单支付收款(不含查询流程)
// BusinessTypeBUSIORDERTRANSBANK = "100100003" // 订单支付银行卡收款(不含查询)
// BusinessTypeBUSIORDERTRANSQR = "100300003" // 订单支付扫码收款(不含查询)
// BusinessTypeBUSIORDERSALE = "100000002" // 订单支付收款(含查询流程)
// BusinessTypeBUSIORDERSALEBANK = "100100002" // 订单支付银行卡收款(含查询流程)
// BusinessTypeBUSIORDERSALEQR = "100300002" // 订单支付扫码收款(含查询流程)
//)
//
//func (a *API) signMisParam(businessID, licence string, custData *CustDataDetail) (sig string) {
// var signBuffer = new(strings.Builder)
// //signBuffer.Write([]byte(a.appID))
// signBuffer.Write([]byte("app_id_001"))
// signBuffer.Write([]byte(businessID))
// signBuffer.Write([]byte(fmt.Sprintf(`{"BUSINESS_ID":"%s","AMOUNT":"%s","ORDER_NO":"%s"}`, custData.BusinessId, custData.Amount, custData.OrderNo)))
// signBuffer.Write([]byte(licence))
// fmt.Println(signBuffer.String())
// binSig := md5.Sum([]byte(signBuffer.String()))
// sig = fmt.Sprintf("%x", binSig)
// return sig
//}
//
//func (a *API) AccessMisAPI(action string, bizParams map[string]interface{}) (retVal map[string]interface{}, err error) {
// //params := make(map[string]interface{})
// //params["APP_ID"] = a.appID
// ////params["randomstr"] = utils.GetUUID()
// ////params["version"] = "12"
// //params = utils.MergeMaps(params, bizParams)
// //signStr := a.signParam(params)
// //params["SIGN_DATA"] = signStr
// fullURL := utils.GenerateGetURL(TongLianMisPay, action, nil)
// err = platformapi.AccessPlatformAPIWithRetry(a.client,
// func() *http.Request {
// request, _ := http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(bizParams).Encode()))
// request.Header.Set("charset", "UTF-8")
// request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
// return request
// },
// a.config,
// func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
// if jsonResult1 == nil {
// return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
// }
// if err == nil {
// returnCode := utils.Interface2String(jsonResult1["RSP_CODE"])
// if returnCode != MisStatusSuccess {
// errLevel = platformapi.ErrLevelGeneralFail
// err = utils.NewErrorCode(utils.Interface2String(jsonResult1["errmsg"])+utils.Interface2String(jsonResult1["retmsg"]), returnCode)
// }
// retVal = jsonResult1
// }
// return errLevel, err
// })
// return retVal, err
//}
//
//// CreateMisPayOrder 创建订单(扫码枪,扫二维码支付)
//func (a *API) CreateMisPayOrder(param *OnMisPayReq, custData *CustDataDetail) (err error) {
// param.AppId = a.appID
// param.SignData = a.signMisParam(param.BusinessId, "", custData)
// params := utils.Struct2MapByJson(param)
// result, err := a.AccessMisAPI(MisPayAction, params)
// fmt.Println(result)
// return
//}
//
//type OnMisPayReq struct {
// AppId string `json:"APP_ID"` // 必填 应用分配ID
// BusinessId string `json:"BUSINESS_ID"` // 必填 业务类型
// CustData string `json:"CUST_DATA"` // 必填 具体的支付请求数据JSON格式字符串
// CashId string `json:"CASH_ID"` // 必填 收银机款台号
// StoreId string `json:"STORE_ID"` // 必填 商户分店号
// SignData string `json:"SIGN_DATA"` // 必填 计算方法参照附录1
// AppPackageNm string `json:"APP_PACKAGE_NM"` // 非必填 指定APP包名
// AppClassNm string `json:"APP_CLASS_NM"` // 非必填 指定类名
// BusExtpara string `json:"BUS_EXTPARA"` // 非必填 业务扩展字段用于特定功能详见附录2
//}
//type CustDataDetail struct {
// BusinessId string `json:"BUSINESS_ID"` // 必填 业务类型
// Amount string `json:"AMOUNT"` // 必填 支付金额,十二位长度(单位:分,不足左补零)
// OrderNo string `json:"ORDER_NO"` // 必填 订单编号
// Memo string `json:"MEMO"` // 非必填 订单编号
// QrCode string `json:"QRCODE"` // 非必填 订单编号
// TramsCheck string `json:"TRANS_CHECK"` // 非必填 订单编号
// PageAppendContent string `json:"PAGE_APPEND_CONTENT"` // 非必填 订单编号
// ValidateInfo string `json:"VALIDATE_INFO"` // 非必填 订单编号
// BusInfo string `json:"BUS_INFO"` // 非必填 订单编号
//}
//
//type MisPayResp struct {
// RspCode string `json:"RSP_CODE"` // 云MIS系统服务调用返回码 支付返回代码请参考RSP_DATA里支付结果字段
// RspData string `json:"RSP_DATA"` // 透传支付产品给云MIS的响应JSON字符串
// RspDesc string `json:"RSP_DESC"` // 交易级返回描述
// CloudMisTrxSsn string `json:"ClOUD_MIS_TRX_SSN"` // 交易成功返回云MIS系统唯一流水号用于查询或对账
//}
//
//type MisPayRspData struct {
// BusinessId string `json:"BUSINESS_ID"` // 必填 业务类型
// RejCode string `json:"REJCODE"` // 交易返回码
// RejCodeCn string `json:"REJCODE_CN"` // 交易返回码注释
// Cups string `json:"CUPS"` // 卡组织,银行卡为空 (ALP支付宝 WXP微信支付)
// MerchID string `json:"MERCH_ID"` // 商户编号
// TerID string `json:"TER_ID"` // 终端编号
// MerchName string `json:"MERCH_NAME"` // 商户名称
// BatchNo string `json:"BATCH_NO"` // 批次号
// TraceNo string `json:"TRACE_NO"` // 凭证号
// TransTicketNo string `json:"TRANS_TICKET_NO"` // 交易单号
// OrderNo string `json:"order_no"` // 订单编号
// Amount string `json:"AMOUNT"` // 支付金额,十二位长度(单位:分)
// RefNo string `json:"REF_NO"` // 系统参考号
// CarDno string `json:"CARDNO"` // 银行卡交易时返回卡号扫码交易返回OPENID或USERID
// CardTypeIdenty string `json:"CARD_TYPE_IDENTY"` // 借贷记卡标识(银行卡) 0:借记 1:贷记
// WildCardSign string `json:"WILD_CARD_SIGN"` //内外卡标识(银行卡) 0内卡 1:外卡
// ExpDate string `json:"EXP_DATE"` // 有效期
// Date string `json:"DATE"` // 支付日期
// Time string `json:"TIME"` // 支付时间
// PrintFlag string `json:"PRINT_FLAG"` // 是否打印小票1打印,0未打印
// CardFee string `json:"CARD_FEE"` // 手续费,十二位长度(单位:分)
// TransCheck string `json:"TRANS_CHECK"` // 交易唯一标识
// AuthNo string `json:"AUTH_NO"` // 授权码
// Sign string `json:"SIGN"` // 签名
// CardType string `json:"CARDTYPE"` // 卡类型
// TransChannel string `json:"TRANS_CHANNEL"` // 交易渠道
// IssNo string `json:"ISS_NO"` // 发卡行行号
// IssName string `json:"ISS_NAME"` // 发卡行名称
// Memo string `json:"MEMO"` // 备注信息
// PrtCommon string `json:"PRT_COMMON"` // 打印内容公共部分(仅用于简易终端版)
// PrtCardholder string `json:"PRT_CARDHOLDER"` // 打印内容持卡人联部分(仅用于简易终端版)
// PrtMerchant string `json:"PRT_MERCHANT"` // 打印内容商户联部分(仅用于简易终端版)
// DiscAmount string `json:"DISC_AMOUNT"` // 优惠金额
// ActuallyAmount string `json:"ACTUALLY_AMOUNT"` // 实付金额
//}