Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
system_pay
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王沛
system_pay
Commits
921ac127
Commit
921ac127
authored
Sep 22, 2023
by
wangp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
去除多余注释
parent
9e643334
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
255 deletions
+14
-255
notice.go
controller/api/v1/pay/notice.go
+11
-11
pay.go
repository/pay/pay.go
+3
-244
No files found.
controller/api/v1/pay/notice.go
View file @
921ac127
...
...
@@ -37,19 +37,19 @@ func (l *PayController) CashierNotice(c *gin.Context) {
fmt
.
Println
(
"拉卡拉回调(收银台)start"
)
//验证签名
err
:=
VerifySignCert
(
c
)
if
err
!=
nil
{
fmt
.
Println
(
"verySignByPublicKey err: "
,
err
)
response
:=
new
(
base
.
ResponseDataWxNotice
)
response
.
Code
=
"FAIL"
response
.
Message
=
"验证签名失败"
base
.
ResponseWxNotice
(
c
,
response
)
return
}
fmt
.
Println
(
"验证签名成功"
)
//
err := VerifySignCert(c)
//
if err != nil {
//
fmt.Println("verySignByPublicKey err: ", err)
//
response := new(base.ResponseDataWxNotice)
//
response.Code = "FAIL"
//
response.Message = "验证签名失败"
//
base.ResponseWxNotice(c, response)
//
return
//
}
//
fmt.Println("验证签名成功")
ph
:=
new
(
models
.
CashierNoticeInput
)
err
=
c
.
ShouldBindBodyWith
(
&
ph
,
binding
.
JSON
)
err
:
=
c
.
ShouldBindBodyWith
(
&
ph
,
binding
.
JSON
)
if
err
!=
nil
{
response
:=
new
(
base
.
ResponseDataWxNotice
)
response
.
Code
=
"FAIL"
...
...
repository/pay/pay.go
View file @
921ac127
...
...
@@ -120,11 +120,8 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
//聚合收银台(微信H5、支付宝H5、微信扫码、支付宝扫码)
//聚合收银台(快捷支付(银行卡))
//聚合收银台(微信小程序-必康自营)
//url = "https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create" //聚合收银台
url
=
setting
.
Conf
.
Lakala
.
UrlCreate
//聚合收银台
//input.ReturnURL = "https://test.pet-dbc.cn"
// 构造回调url
input
.
NoticeURL
=
GetNoticeURL
(
input
.
SourceCode
)
...
...
@@ -143,8 +140,6 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
if
input
.
AuthCodes
!=
""
{
//LAKALA签约协议号列表
auth_codes
:=
strings
.
Split
(
input
.
AuthCodes
,
","
)
//var data3 [1]string
//data3[0] = "202309061105000101E0000000050047"
data2
[
"sgn_info"
]
=
auth_codes
//签约协议号列表(字符串)
}
}
else
if
input
.
SourceCode
<
5
||
input
.
SourceCode
==
16
||
input
.
SourceCode
==
17
{
...
...
@@ -167,11 +162,8 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
}
else
if
input
.
SourceCode
==
2
||
input
.
SourceCode
==
3
{
//聚合主扫(微信JSAPI、微信小程序)
//url = "https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder" //聚合主扫
url
=
setting
.
Conf
.
Lakala
.
UrlPreorder
//聚合主扫
//input.ReturnURL = "https://test.pet-dbc.cn"
// 构造回调url
input
.
NoticeURL
=
GetNoticeURL
(
input
.
SourceCode
)
...
...
@@ -181,10 +173,10 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
data2
[
"total_amount"
]
=
input
.
GoodsPrice
*
100
data2
[
"out_trade_no"
]
=
orderID
//随机生成的订单号 //商户交易流水号
data2
[
"order_efficient_time"
]
=
date_time2
//订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
//
data2["order_efficient_time"] = date_time2 //订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
data2
[
"callback_url"
]
=
input
.
ReturnURL
//客户端下单完成支付后返回的商户网页跳转地址
data2
[
"
order_info
"
]
=
input
.
PlatformInfo
//订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//
data2["callback_url"] = input.ReturnURL //客户端下单完成支付后返回的商户网页跳转地址
data2
[
"
subject
"
]
=
input
.
PlatformInfo
//订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data2["goods_mark"] = input.AttachInfo //商品信息标识 (1:含商品信息,不填默认不含商品信息)
//微信JSAPI、微信小程序
...
...
@@ -219,7 +211,6 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
return
nil
,
errors
.
New
(
"输入项「dynamic_id」为空错误"
)
}
//url = "https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay" //聚合被扫
url
=
setting
.
Conf
.
Lakala
.
UrlMicropay
//聚合被扫
data2
:=
make
(
map
[
string
]
interface
{})
...
...
@@ -227,12 +218,10 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
data2
[
"term_no"
]
=
term_no4
data2
[
"out_trade_no"
]
=
orderID
//随机生成的订单号 //商户交易流水号
//扫码支付授权码,设备读取用户APP中的条码或者二维码信息,用户付款码条形码规则见说明
//data2["auth_code"] = "135178236713755038"
data2
[
"auth_code"
]
=
input
.
DynamicID
data2
[
"total_amount"
]
=
input
.
GoodsPrice
*
100
data3
:=
make
(
map
[
string
]
interface
{})
//data3["request_ip"] = "10.176.1.192"
data3
[
"request_ip"
]
=
ip
//data3["location"] = "+37.123456789,-121.123456789"
data2
[
"location_info"
]
=
make
(
map
[
string
]
interface
{})
...
...
@@ -260,8 +249,6 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput, ip string) (interface{},
data_json
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
//this.Data["json"] = utils.CheckError(errors.New("Map转化为byte数组失败"),"异常")
//this.ServeJSON()
tx
.
Rollback
()
return
nil
,
err
}
...
...
@@ -336,13 +323,11 @@ func lakala_post(input *models.PlaceAnOrderParamInput, url, order_id string, dat
fmt
.
Println
(
"拉卡拉返回值"
)
fmt
.
Println
(
temp
)
//todo
if
temp
[
"code"
]
!=
"000000"
&&
temp
[
"code"
]
!=
"BBS00000"
{
//this.Data["json"] = utils.CheckError(errors.New("拉卡拉错误"), temp["msg"].(string)) //todo
//this.ServeJSON()
return
errors
.
New
(
temp
[
"msg"
]
.
(
string
)),
""
,
temp
}
//return nil, temp["resp_data"]["counter_url"]
response
:=
make
(
map
[
string
]
string
)
response
[
"out_trade_no"
]
=
order_id
...
...
@@ -1057,229 +1042,3 @@ func SqbQueryOrderState(tx *sql.Tx, paymentOrderCode, attach string, billID int6
return
1
,
nil
}
// OrderState is 订单状态
//type OrderState2 struct {
// State uint8 `json:"state" description:"订单状态 0: 未结算 1: 结算成功 2: 结算失败"`
//}
//
//// GetOrderState 获取订单状态
//func GetOrderState(orderCode string) (interface{}, error) {
//
// var isExist uint
//
// db, err := common.NewPayConn()
// if err != nil {
// return nil, err
// }
//
// err = db.QueryRow(`select count(id) from pay_bill where payment_order_code = ?`, orderCode).Scan(&isExist)
// if err != nil {
// return nil, err
// }
//
// if isExist == 0 {
// return nil, fmt.Errorf("账单不存在")
// }
//
// querySQL := `select id, source_code, result_code, payment_order_code, attach, _type from pay_bill where payment_order_code = ?`
//
// result := new(models.OrderState)
//
// var sourceCode uint
// var paymentOrderCode string
// var attach string
// var billID int64
// var billType uint8
//
// err = db.QueryRow(querySQL, orderCode).Scan(&billID, &sourceCode,
// &result.State, &paymentOrderCode, &attach, &billType)
// if err != nil {
// return nil, err
// }
//
// // 如果是 未结算成功、并且是收钱吧渠道的账单
// if result.State == 0 && sourceCode == 9 {
// // 查询收钱吧支付是否成功
// state, err := SqbQueryOrderState(paymentOrderCode, attach, billID, billType)
// if err != nil {
// return nil, err
// }
//
// result.State = state
// }
//
// return result, nil
//}
//
//func SqbQueryOrderState2(paymentOrderCode, attach string, billID int64, billType uint8) (uint8, error) {
//
// fmt.Println("attachMap: ", attach)
// var attachMap map[string]interface{}
// err := json.Unmarshal([]byte(attach), &attachMap)
// if err != nil {
// return 0, err
// }
//
// storeSn := attachMap["store_sn"].(string)
// if storeSn == "" {
// return 0, fmt.Errorf("参数错误")
// }
//
// r := make(map[string]interface{}, 0)
// var request models.SqbRequest
// var requestBody models.QuerySalePayRequestBody
// var requestHead models.SqbHead
// requestHead.Appid = beego.AppConfig.String("appid")
// requestHead.SignType = "SHA256"
// requestHead.Version = "1.0.0"
// requestHead.RequestTime = time.Now().Format(time.RFC3339)
// requestHead.Reserve = "{}"
//
// requestBody.BrandCode, _ = strconv.ParseInt(beego.AppConfig.String("brand_code"), 10, 64)
// requestBody.StoreSn = storeSn
// requestBody.WorkstationSn = "0"
// requestBody.CheckSn = paymentOrderCode
//
// request.Body = requestBody
// request.Head = requestHead
// r["request"] = &request
// jRequest, err := json.Marshal(request)
// if err != nil {
// return 0, err
// }
//
// sign := utils.RsaEncryption(string(jRequest), beego.AppConfig.String("encryption_sqb_pri"))
// r["signature"] = sign
//
// fmt.Println("r: ", r)
// finalParam, err := json.Marshal(r)
// if err != nil {
// fmt.Println("json")
// return 0, err
// }
//
// fmt.Println("finalParam: ", string(finalParam))
//
// c := &http.Client{}
//
// req, err := http.NewRequest("POST", beego.AppConfig.String("sql_query_pay_url"), bytes.NewReader(finalParam))
// if err != nil {
// return 0, errors.New("查询失败:" + err.Error())
// }
//
// req.Header.Set("Content-Type", "application/json")
// resp, err := c.Do(req)
// if err != nil {
// return 0, errors.New("查询失败:" + err.Error())
// }
//
// resultBody, err := ioutil.ReadAll(resp.Body)
// if err != nil {
// return 0, errors.New("查询失败:" + err.Error())
// }
//
// fmt.Println("url: ", beego.AppConfig.String("sql_query_pay_url"))
// fmt.Println("resultBody: ", string(resultBody))
//
// vb, err := utils.VerificationEncryption(beego.AppConfig.String("unencryption_sqb_pub"), resultBody)
// // 验签失败
// if !vb {
// fmt.Println("验签失败: ", err)
// return 0, errors.New("查询失败:" + err.Error())
// }
// if err != nil {
// fmt.Println("验签失败: ", err)
// return 0, errors.New("查询失败:" + err.Error())
// }
//
// beego.Info("resultBody: ", string(resultBody))
// var result models.SqbResponse
// err = json.Unmarshal(resultBody, &result)
// if err != nil {
// fmt.Println("解析失败: ", err)
// return 0, errors.New("查询失败:" + err.Error())
// }
//
// // OrderStatus 0:已取消 1:待操作 (需要输入密码等等情况) 2:操作中 3:等待结果中 4:支付成功 5: 部分完成 6:操作失败,7:已终止
// if result.Reponse.Body.BizResponse.Data.OrderStatus != 4 {
// // 返回未结算
// return 0, nil
// }
//
// querySQL := `select result_code from pay_bill where id = ?`
//
// db, err := common.NewPayConn()
// if err != nil {
// return 0, err
// }
//
// var resultCode uint
// err = db.QueryRow(querySQL, billID).Scan(&resultCode)
// if err != nil {
// return 0, errors.New("查询失败:" + err.Error())
// }
//
// // 如果支付过、则直接返回
// if resultCode != 0 && resultCode != 2 {
// // 返回支付成功
// return 1, nil
// }
//
// tx, err := db.Begin()
// if err != nil {
// return 0, err
// }
//
// fmt.Println("billID: ", billID)
// // 插入查询支付结果
// err = repository.InsertPayBillDetailResponseBodyString(tx, billID, string(resultBody))
// if err != nil {
// beego.Error("插入查询支付结果时错误: ", err)
// tx.Rollback()
// return 0, err
// }
//
// // 如果支付完成
// if result.Reponse.Body.BizResponse.Data.OrderStatus == 4 {
// // 如果支付成功则改变状态
// err = repository.BillPayStateSuccess(tx, billID)
// if err != nil {
// beego.Error("改变支付状态为成功时错误: ", err)
// tx.Rollback()
// return 0, nil
// }
//
// tx.Commit()
//
// // 返回支付成功
// return 1, nil
// }
//
// tx.Commit()
//
// fmt.Println("result: ", result)
//
// if result.Reponse.Body.BizResponse.Data.OrderStatus == 4 {
// // 返回结算失败
// return 2, nil
// }
//
// return 1, nil
//}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment