ls 5 years ago
parent
commit
9faec06968
2 changed files with 7 additions and 58 deletions
  1. 1 54
      unionpay/charging.go
  2. 6 4
      unionpay/client.go

+ 1 - 54
unionpay/charging.go

@@ -4,60 +4,7 @@ package unionpay
 
 // EntrustCharge 代扣费用
 func EntrustCharge(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqRespose, err error) {
-	notifyURL := "https://park.chuangxin1.com/api/payment/notify/zhuhai"
-	/*
-		var (
-			accNo     []byte
-			encrypted []byte
-			signature []byte
-			values    = &url.Values{}
-			args      = make(map[string]string)
-		)
 
-
-		args["version"] = "5.1.0"                 // 版本号
-		args["encoding"] = "utf-8"                // 编码方式
-		args["signMethod"] = "01"                 // 签名方法
-		args["txnType"] = "11"                    // 交易类型
-		args["txnSubType"] = "02"                 // 交易子类
-		args["bizType"] = "000501"                // 业务类型
-		args["accessType"] = "0"                  // 接入类型
-		args["channelType"] = "07"                // 渠道类型
-		args["currencyCode"] = "156"              // 交易币种, 境内商户勿改
-		args["backUrl"] = notifyURL               // 后台通知地址
-		args["encryptCertId"] = mi.SerialNumber() // 验签证书序列号
-		args["certId"] = mi.SerialNumber()        // 证书序列号
-		args["merId"] = mi.MerID                  // 商户代码
-		args["orderId"] = oi.OrderID              // 商户订单号,8-32位数字字母,不能含“-”或“_”
-		args["txnTime"] = oi.TxnTime              // 订单发送时间,格式为YYYYMMDDhhmmss,取北京时间
-		args["txnAmt"] = "12"                     // 交易金额
-
-		accNo, err = mi.Encrypt([]byte(ci.CardNo))
-		if err != nil {
-			return
-		}
-		args["accNo"] = base64Encode(accNo)
-
-		encrypted, err = mi.EncryptCustomerInfo(ci)
-		if err != nil {
-			return
-		}
-		args["customerInfo"] = ci.String(encrypted)
-
-		signature, err = mi.Sign([]byte(createLinkString(args, true, false)))
-		if err != nil {
-			return
-		}
-		args["signature"] = base64Encode(signature) // 签名
-
-		for k, v := range args {
-			values.Add(k, v)
-		}
-		res, err = post(BaseHost+ReqBackTrans, []byte(values.Encode()))
-		if err != nil {
-			return
-		}
-		// */
 	var body string
 	args := newParams(oi, ci)
 	args.TxnType = "11"    // 交易类型, 取值:11
@@ -65,7 +12,7 @@ func EntrustCharge(mi *MerchantInfo, oi OrderInfo, ci CustomerInfo) (res ReqResp
 
 	args.BizType = "000501" // 业务类型 代收产品
 
-	args.BackURL = notifyURL
+	args.BackURL = oi.NotifyURL
 	body, err = args.ToBody(mi, ci)
 	if err != nil {
 		return

+ 6 - 4
unionpay/client.go

@@ -30,8 +30,9 @@ type OrderInfo struct {
 	OrderID    string // 商户订单号,8-32位数字字母,不能含“-”或“_”
 	// TxnTime 订单发送时间,格式为YYYYMMDDhhmmss,取北京时间
 	TxnTime      string
-	TxnAmt       int // 交易金额, 单位: 分
-	CurrencyCode int // 交易币种
+	TxnAmt       int    // 交易金额, 单位: 分
+	CurrencyCode int    // 交易币种
+	NotifyURL    string // 回调通知地址
 }
 
 // CustomerInfo 客户信息
@@ -241,9 +242,10 @@ func (p *ReqParams) ToBody(mi *MerchantInfo, ci CustomerInfo) (body string, err
 	if p.TxnAmt > 0 {
 		args["txnAmt"] = strconv.Itoa(p.TxnAmt)             // 交易金额
 		args["currencyCode"] = strconv.Itoa(p.CurrencyCode) // 交易币种
-		args["backUrl"] = p.BackURL                         // 后台通知地址
 	}
-
+	if len(p.BackURL) > 10 { // http[s]://
+		args["backUrl"] = p.BackURL // 后台通知地址
+	}
 	accNo, err = mi.Encrypt([]byte(ci.CardNo))
 	if err != nil {
 		return