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
3f227fc3
Commit
3f227fc3
authored
Jun 28, 2023
by
wangp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lakala-wxjsapi-alipay
parent
ce89200b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
260 additions
and
200 deletions
+260
-200
notice.go
controller/api/v1/pay/notice.go
+17
-19
pay.go
controller/api/v1/pay/pay.go
+7
-2
jwt.go
middleware/jwt/jwt.go
+45
-52
pay.go
repository/pay/pay.go
+191
-127
No files found.
controller/api/v1/pay/notice.go
View file @
3f227fc3
...
...
@@ -4,6 +4,8 @@ import (
"fmt"
"github.com/gin-gonic/gin"
"system_pay/controller/base"
"system_pay/models"
"system_pay/repository/pay"
)
// 卡拉卡统一支付回调
...
...
@@ -36,24 +38,20 @@ func (l *PayController) WxNotice(c *gin.Context) {
//}
//fmt.Println(ph2)
//ph := new(models.WxNoticeInput)
//err := c.ShouldBindJSON(ph)
//if err != nil {
// response := new(base.ResponseDataWxNotice)
// response.Code = "FAIL"
// response.Message = "执行失败2"
// base.ResponseWxNotice(c, response)
// return
//}
////fmt.Println(ph)
//
//// 拉卡拉统一支付微信回调
//response, err := pay.WxNotice(ph)
//
//fmt.Println("拉卡拉微信回调end")
response
:=
new
(
base
.
ResponseDataWxNotice
)
response
.
Code
=
"SUCCESS"
response
.
Message
=
"执行成功"
ph
:=
new
(
models
.
WxNoticeInput
)
err
:=
c
.
ShouldBindJSON
(
ph
)
if
err
!=
nil
{
response
:=
new
(
base
.
ResponseDataWxNotice
)
response
.
Code
=
"FAIL"
response
.
Message
=
"执行失败2"
base
.
ResponseWxNotice
(
c
,
response
)
return
}
//fmt.Println(ph)
// 拉卡拉统一支付微信回调
response
,
err
:=
pay
.
WxNotice
(
ph
)
fmt
.
Println
(
"拉卡拉微信回调end"
)
base
.
ResponseWxNotice
(
c
,
response
)
}
controller/api/v1/pay/pay.go
View file @
3f227fc3
...
...
@@ -26,7 +26,7 @@ type PayController struct {
func
(
l
*
PayController
)
UnifiedOrder
(
c
*
gin
.
Context
)
{
ph
:=
new
(
models
.
PlaceAnOrderParamInput
)
fmt
.
Println
(
"ContentType="
+
c
.
ContentType
())
//
fmt.Println("ContentType="+c.ContentType())
err
:=
c
.
ShouldBindJSON
(
ph
)
if
err
!=
nil
{
zap
.
L
()
.
Error
(
err
.
Error
())
...
...
@@ -34,8 +34,13 @@ func (l *PayController) UnifiedOrder(c *gin.Context) {
return
}
// clientIp ip
//ip = c.Ctx.Input.IP()
ip
:=
c
.
ClientIP
()
fmt
.
Println
(
"ip="
+
ip
)
// 拉卡拉统一支付
rtn
,
err
:=
pay
.
UnifiedOrder
(
ph
)
rtn
,
err
:=
pay
.
UnifiedOrder
(
ph
,
ip
)
if
err
!=
nil
{
zap
.
L
()
.
Error
(
err
.
Error
())
//base.ResponseErrorWithMsg(c, base.ServerError)
...
...
middleware/jwt/jwt.go
View file @
3f227fc3
package
jwt
import
(
"fmt"
"github.com/gin-gonic/gin"
"system_pay/controller/base"
"system_pay/utils"
)
//var DataAnalysisCh chan models.DataAnalysisModel
func
init
()
{
...
...
@@ -15,51 +8,51 @@ func init() {
}
// JWTAuthMiddleWare 基于JWT的认证中间件
func
JWTAuthMiddleWare
()
func
(
c
*
gin
.
Context
)
{
return
func
(
c
*
gin
.
Context
)
{
//客户端携带Token放在请求头
authHeader
:=
c
.
Request
.
Header
.
Get
(
"Authorization"
)
if
authHeader
==
""
{
base
.
ResponseErrorWithMsg
(
c
,
base
.
AuthorizationEmpty
)
c
.
Abort
()
return
}
mc
,
err
:=
utils
.
ParseToken
(
authHeader
)
if
err
!=
nil
{
base
.
ResponseErrorWithMsg
(
c
,
base
.
AuthorizationEmpty
)
c
.
Abort
()
return
}
// des解密
phoneMob
:=
utils
.
ToDesDecrypt
(
mc
.
PhoneMob
)
userId
:=
utils
.
ToDesDecrypt
(
mc
.
UserId
)
userName
:=
utils
.
ToDesDecrypt
(
mc
.
UserName
)
//hospitalCode := utils.ToDesDecrypt(mc.HospitalCode)
//chainCode := utils.ToDesDecrypt(mc.ChainCode)
//hospitalID := utils.ToDesDecrypt(mc.HospitalID)
//hospitalName := utils.ToDesDecrypt(mc.HospitalName)
//ChainID := utils.ToDesDecrypt(mc.ChainID)
// 将当前请求的username信息保存到请求的上下文c上
c
.
Set
(
"phone_mob"
,
phoneMob
)
fmt
.
Println
(
phoneMob
)
c
.
Set
(
"user_id"
,
userId
)
fmt
.
Println
(
userId
)
c
.
Set
(
"user_name"
,
userName
)
fmt
.
Println
(
userName
)
//c.Set("hospital_code", hospitalCode)
//c.Set("chain_code", chainCode)
//c.Set("hospital_id", hospitalID)
//c.Set("hospital_name", hospitalName)
//c.Set("chain_id", ChainID)
// 后续的处理函数可以用过c.Get("username")来获取当前请求的用户信息
// 埋点生产者
//BuriedProducer(c, hospitalCode, hospitalName, hospitalID)
c
.
Next
()
}
}
//
func JWTAuthMiddleWare() func(c *gin.Context) {
//
return func(c *gin.Context) {
//
//客户端携带Token放在请求头
//
authHeader := c.Request.Header.Get("Authorization")
//
if authHeader == "" {
//
base.ResponseErrorWithMsg(c, base.AuthorizationEmpty)
//
c.Abort()
//
return
//
}
//
//
mc, err := utils.ParseToken(authHeader)
//
if err != nil {
//
base.ResponseErrorWithMsg(c, base.AuthorizationEmpty)
//
c.Abort()
//
return
//
}
//
//
// des解密
//
phoneMob := utils.ToDesDecrypt(mc.PhoneMob)
//
userId := utils.ToDesDecrypt(mc.UserId)
//
userName := utils.ToDesDecrypt(mc.UserName)
//
//hospitalCode := utils.ToDesDecrypt(mc.HospitalCode)
//
//chainCode := utils.ToDesDecrypt(mc.ChainCode)
//
//hospitalID := utils.ToDesDecrypt(mc.HospitalID)
//
//hospitalName := utils.ToDesDecrypt(mc.HospitalName)
//
//ChainID := utils.ToDesDecrypt(mc.ChainID)
//
// 将当前请求的username信息保存到请求的上下文c上
//
c.Set("phone_mob", phoneMob)
//
fmt.Println(phoneMob)
//
c.Set("user_id", userId)
//
fmt.Println(userId)
//
c.Set("user_name", userName)
//
fmt.Println(userName)
//
//c.Set("hospital_code", hospitalCode)
//
//c.Set("chain_code", chainCode)
//
//c.Set("hospital_id", hospitalID)
//
//c.Set("hospital_name", hospitalName)
//
//c.Set("chain_id", ChainID)
//
// 后续的处理函数可以用过c.Get("username")来获取当前请求的用户信息
//
//
// 埋点生产者
//
//BuriedProducer(c, hospitalCode, hospitalName, hospitalID)
//
c.Next()
//
}
//
}
// 埋点消费者
//func DataAnalysisChannel() {
...
...
repository/pay/pay.go
View file @
3f227fc3
...
...
@@ -24,7 +24,7 @@ import (
)
// 拉卡拉支付
func
UnifiedOrder
(
input
*
models
.
PlaceAnOrderParamInput
)
(
interface
{},
error
)
{
func
UnifiedOrder
(
input
*
models
.
PlaceAnOrderParamInput
,
ip
string
)
(
interface
{},
error
)
{
//if input.ChainCode=="" || input.HospitalCode=="" || input.VendorId=="" || seller_id=="" {
// return nil, errors.New("输入项为空")
...
...
@@ -35,7 +35,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
orderID
:=
GetUID
()
beego
.
Info
(
"AttachInfo: "
,
input
.
AttachInfo
)
//
beego.Info("AttachInfo: ", input.AttachInfo)
attachMap
:=
make
(
map
[
string
]
interface
{},
0
)
attachMap
[
"store_sn"
]
=
input
.
StoreSn
...
...
@@ -64,11 +64,18 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
//数据重组 - start
data
:=
make
(
map
[
string
]
interface
{})
var
url
string
if
false
{
//聚合收银台(微信H5+支付宝H5)
url
=
"https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create"
//聚合收银台
data
[
"req_time"
]
=
"20230626100000"
data
[
"version"
]
=
"3.0"
data
[
"out_org_code"
]
=
"OP00000003"
input
.
ReturnURL
=
"https://test.pet-dbc.cn"
//
input.ReturnURL = "https://test.pet-dbc.cn"
// 构造回调url
input
.
NoticeURL
=
GetNoticeURL
(
input
.
SourceCode
)
...
...
@@ -81,12 +88,52 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
data2
[
"term_no"
]
=
"29034705"
//data2["auth_code"] = "135178236713755038" //delete ?
//data2["total_amount"] = "1"
data2
[
"total_amount"
]
=
input
.
GoodsPrice
//data2["out_trade_no"] = orderID //随机生成的订单号 //商户交易流水号
//data2["out_trade_no"] = RandomString(32)
data2
[
"out_order_no"
]
=
orderID
//随机生成的订单号 //商户订单号
//data2["out_order_no"] = RandomString(32)
//data2["out_trade_no"] = input.AttachInfo
//data2["out_order_no"] = input.AttachInfo
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
ALIPAY
\"
}"
//data2["counter_param"] = "{\"pay_mode\":\"WECHAT\"}"
data2
[
"order_efficient_time"
]
=
"20230630235959"
//订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
data2
[
"callback_url"
]
=
input
.
ReturnURL
//客户端下单完成支付后返回的商户网页跳转地址
data2
[
"order_info"
]
=
"必康测试订单标题2"
//订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data2["goods_mark"] = input.AttachInfo //商品信息标识 (1:含商品信息,不填默认不含商品信息)
data
[
"req_data"
]
=
make
(
map
[
string
]
interface
{})
data
[
"req_data"
]
=
data2
}
else
{
//聚合主扫(微信JSAPI+微信小程序)
url
=
"https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder"
//聚合主扫
data
[
"req_time"
]
=
"20230626100000"
data
[
"version"
]
=
"3.0"
data
[
"out_org_code"
]
=
"OP00000003"
//input.ReturnURL = "https://test.pet-dbc.cn"
// 构造回调url
input
.
NoticeURL
=
GetNoticeURL
(
input
.
SourceCode
)
// 传递给支付渠道的
//p.ServeNoticeUrl = noticeURLx
data2
:=
make
(
map
[
string
]
interface
{})
//data2["merchant_no"] = "8222900701107M5"
data2
[
"merchant_no"
]
=
"8221210701101SB"
data2
[
"term_no"
]
=
"29034705"
//data2["auth_code"] = "135178236713755038" //delete ?
//data2["total_amount"] = "1"
data2
[
"total_amount"
]
=
input
.
GoodsPrice
//data2["out_trade_no"] = orderID //随机生成的订单
号
data2
[
"out_trade_no"
]
=
orderID
//随机生成的订单号 //商户交易流水
号
//data2["out_trade_no"] = RandomString(32)
data2
[
"out_order_no"
]
=
orderID
//随机生成的
订单号
//data2["out_order_no"] = orderID //随机生成的订单号 //商户
订单号
//data2["out_order_no"] = RandomString(32)
//data2["out_trade_no"] = input.AttachInfo
//data2["out_order_no"] = input.AttachInfo
...
...
@@ -95,17 +142,29 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
data2
[
"counter_param"
]
=
"{
\"
pay_mode
\"
:
\"
WECHAT
\"
}"
data2
[
"order_efficient_time"
]
=
"20230630235959"
//订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
data2
[
"callback_url"
]
=
input
.
ReturnURL
//客户端下单完成支付后返回的商户网页跳转地址
data2
[
"order_info"
]
=
"必康测试订单标题2"
//订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
data2
[
"callback_url"
]
=
input
.
ReturnURL
//客户端下单完成支付后返回的商户网页跳转地址
data2
[
"order_info"
]
=
"必康测试订单标题2"
//订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data2["goods_mark"] = input.AttachInfo //商品信息标识 (1:含商品信息,不填默认不含商品信息)
data2
[
"account_type"
]
=
"WECHAT"
//钱包类型
data2
[
"trans_type"
]
=
"51"
//接入方式
//地址位置信息
data3
:=
make
(
map
[
string
]
interface
{})
data3
[
"request_ip"
]
=
ip
data2
[
"location_info"
]
=
make
(
map
[
string
]
interface
{})
data2
[
"location_info"
]
=
data3
data
[
"req_data"
]
=
make
(
map
[
string
]
interface
{})
data
[
"req_data"
]
=
data2
}
//数据重组 - end
fmt
.
Println
(
"拉卡拉输入参数"
)
fmt
.
Println
(
data
)
fmt
.
Println
(
"拉卡拉接口url"
)
fmt
.
Println
(
url
)
// 插入下单请求参数
err
=
InsertPayBillDetailRequestBody
(
tx
,
billID
,
data
)
...
...
@@ -113,13 +172,6 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
return
nil
,
err
}
//ok, err := wechat.VerifySign(WxKey, wechat.SignType_MD5, wxResponse)
//if err != nil || !ok {
// beego.Error("验签失败, 订单号是: ", orderID)
// beego.Error("wx response: ", wxResponse)
// return nil, err
//}
data_json
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
//this.Data["json"] = utils.CheckError(errors.New("Map转化为byte数组失败"),"异常")
...
...
@@ -127,9 +179,9 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
return
nil
,
err
}
//url := "https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder" //聚合主扫
url
//url := "https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay" //聚合被扫
url
url
:=
"https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create"
//拉卡拉收银台订单创建url
//url := "https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder" //聚合主扫
//url := "https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay" //聚合被扫
//url := "https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create" //聚合收银台
//调拉卡拉接口
err
,
m_web_url
,
lakala_rtn
:=
lakala_post
(
url
,
data_json
)
...
...
@@ -151,115 +203,7 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
return
response
,
nil
}
func
UnifiedOrder2
(
input
*
models
.
PlaceAnOrderParamInput
)
(
interface
{},
error
)
{
//Params
//var input model.PlaceAnOrderParamInput
//if err := json.Unmarshal(this.Ctx.Input.RequestBody, &input); err != nil {
// this.Data["json"] = utils.CheckError(err, "")
// this.ServeJSON()
// return
// //this.Data["json"] = utils.CheckError(errors.New(languages.ParamsError), languages.SystemError)
// //this.ServeJSON()
// //return
//}
//
////validate
//if err := input.ValidPlaceAnOrderParamInput(); err != nil {
// this.Data["json"] = utils.CheckError(err,"")
// this.ServeJSON()
// return
//}
//if input.PayType==1 {
//
//}
data
:=
make
(
map
[
string
]
interface
{})
data
[
"req_time"
]
=
"20220714160009"
data
[
"version"
]
=
"3.0"
data
[
"out_org_code"
]
=
"OP00000003"
data2
:=
make
(
map
[
string
]
interface
{})
data2
[
"merchant_no"
]
=
"822290070111135"
data2
[
"term_no"
]
=
"29034705"
//data2["out_trade_no"] = "FD660E1FAA3A4470933CDEDAE1EC1D8E"
data2
[
"out_trade_no"
]
=
"FD660E1FAA3A4470933CDEDAE1EC1D8E"
data2
[
"auth_code"
]
=
"135178236713755038"
data2
[
"total_amount"
]
=
"123"
//data2["out_order_no"] = "08F4542EEC6A4497BC419161747A92FA"
data2
[
"out_order_no"
]
=
"08F4542EEC6A4497BC419161747A92FA"
data
[
"req_data"
]
=
make
(
map
[
string
]
interface
{})
data
[
"req_data"
]
=
data2
data3
:=
make
(
map
[
string
]
interface
{})
data3
[
"request_ip"
]
=
"10.176.1.192"
data3
[
"location"
]
=
"+37.123456789,-121.123456789"
data2
[
"location_info"
]
=
make
(
map
[
string
]
interface
{})
data2
[
"location_info"
]
=
data3
//data2["out_order_no"] = input.AttachInfo //商户订单号
//data2["total_amount"] = input.AttachInfo //订单金额,单位:分
//data2["order_efficient_time"] = input.AttachInfo //订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
//data2["notify_url"] = input.AttachInfo //订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
//data2["callback_url"] = input.AttachInfo //商户订单号
//data2["order_info"] = input.AttachInfo //订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data2["goods_mark"] = input.AttachInfo //商品信息标识 (1:含商品信息,不填默认不含商品信息)
//var data model.LakalaParamInput
//data.Version = "3.0"
//data.ReqTime = "20220714160009"
//data.ReqData.OutOrderNo = input.AttachInfo //商户订单号
////data.ReqData.MerchantNo = //银联商户号
//data.ReqData.TotalAmount = input.GoodsPrice //订单金额,单位:分
////data.ReqData.OrderEfficientTime = //订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
//data.ReqData.NotifyUrl = input.NoticeURL //订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
//data.ReqData.CallbackUrl = input.ReturnURL //客户端下单完成支付后返回的商户网页跳转地址
////data.ReqData.OrderInfo = input.OrderId //订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data.ReqData.GoodsMark = input.GoodsDes //商品信息标识 (1:含商品信息,不填默认不含商品信息)
//数据重组 - end
////var data = input.ReqData
//fmt.Println(111)
//fmt.Println(data)
data_json
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
//this.Data["json"] = utils.CheckError(errors.New("Map转化为byte数组失败"),"异常")
//this.ServeJSON()
return
nil
,
err
}
//url := "https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder" //聚合主扫url
url
:=
"https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay"
//聚合被扫url
//url := "https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create" //拉卡拉收银台订单创建url
//调拉卡拉接口
err
,
_
,
_
=
lakala_post
(
url
,
data_json
)
if
err
!=
nil
{
//this.Data["json"] = utils.CheckError(err,"拉卡拉错误")
//this.ServeJSON()
return
nil
,
err
}
return
nil
,
nil
//response := make(map[string]string)
//response["m_web_url"] = m_web_url
//调拉卡拉接口
//err = lakala_post(url, data_json)
//if err != nil {
// this.Data["json"] = utils.CheckError(err,"拉卡拉错误")
// this.ServeJSON()
// return
//}
//
//this.Data["json"] = utils.Success(nil)
//this.ServeJSON()
}
func
lakala_post
(
url
string
,
data_json
[]
byte
)
(
error
,
string
,
interface
{})
{
...
...
@@ -423,6 +367,7 @@ func GetNoticeURL(sourceCode uint8) string {
//domainName := beego.AppConfig.String("DomainName")
domainName
:=
setting
.
Conf
.
PayUrl
.
DomainName
//domainName = "http://tpay-v2.pet-dbc.cn:14880";
return
domainName
+
"/api/v1/pay/wx_notice"
// <= 5 是微信
if
sourceCode
<
5
{
...
...
@@ -576,4 +521,123 @@ func GetUID() string {
id
:=
fmt
.
Sprintf
(
"%s"
,
u4
)
return
strings
.
Replace
(
id
,
"-"
,
""
,
-
1
)
}
//聚合被扫
func
UnifiedOrder2
(
input
*
models
.
PlaceAnOrderParamInput
)
(
interface
{},
error
)
{
//Params
//var input model.PlaceAnOrderParamInput
//if err := json.Unmarshal(this.Ctx.Input.RequestBody, &input); err != nil {
// this.Data["json"] = utils.CheckError(err, "")
// this.ServeJSON()
// return
// //this.Data["json"] = utils.CheckError(errors.New(languages.ParamsError), languages.SystemError)
// //this.ServeJSON()
// //return
//}
//
////validate
//if err := input.ValidPlaceAnOrderParamInput(); err != nil {
// this.Data["json"] = utils.CheckError(err,"")
// this.ServeJSON()
// return
//}
//if input.PayType==1 {
//
//}
data
:=
make
(
map
[
string
]
interface
{})
data
[
"req_time"
]
=
"20220714160009"
data
[
"version"
]
=
"3.0"
data
[
"out_org_code"
]
=
"OP00000003"
data2
:=
make
(
map
[
string
]
interface
{})
data2
[
"merchant_no"
]
=
"822290070111135"
data2
[
"term_no"
]
=
"29034705"
//data2["out_trade_no"] = "FD660E1FAA3A4470933CDEDAE1EC1D8E"
data2
[
"out_trade_no"
]
=
"FD660E1FAA3A4470933CDEDAE1EC1D8E"
data2
[
"auth_code"
]
=
"135178236713755038"
data2
[
"total_amount"
]
=
"123"
//data2["out_order_no"] = "08F4542EEC6A4497BC419161747A92FA"
data2
[
"out_order_no"
]
=
"08F4542EEC6A4497BC419161747A92FA"
data
[
"req_data"
]
=
make
(
map
[
string
]
interface
{})
data
[
"req_data"
]
=
data2
data3
:=
make
(
map
[
string
]
interface
{})
data3
[
"request_ip"
]
=
"10.176.1.192"
data3
[
"location"
]
=
"+37.123456789,-121.123456789"
data2
[
"location_info"
]
=
make
(
map
[
string
]
interface
{})
data2
[
"location_info"
]
=
data3
//data2["out_order_no"] = input.AttachInfo //商户订单号
//data2["total_amount"] = input.AttachInfo //订单金额,单位:分
//data2["order_efficient_time"] = input.AttachInfo //订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
//data2["notify_url"] = input.AttachInfo //订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
//data2["callback_url"] = input.AttachInfo //商户订单号
//data2["order_info"] = input.AttachInfo //订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data2["goods_mark"] = input.AttachInfo //商品信息标识 (1:含商品信息,不填默认不含商品信息)
//var data model.LakalaParamInput
//data.Version = "3.0"
//data.ReqTime = "20220714160009"
//data.ReqData.OutOrderNo = input.AttachInfo //商户订单号
////data.ReqData.MerchantNo = //银联商户号
//data.ReqData.TotalAmount = input.GoodsPrice //订单金额,单位:分
////data.ReqData.OrderEfficientTime = //订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
//data.ReqData.NotifyUrl = input.NoticeURL //订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
//data.ReqData.CallbackUrl = input.ReturnURL //客户端下单完成支付后返回的商户网页跳转地址
////data.ReqData.OrderInfo = input.OrderId //订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
//data.ReqData.GoodsMark = input.GoodsDes //商品信息标识 (1:含商品信息,不填默认不含商品信息)
//数据重组 - end
////var data = input.ReqData
//fmt.Println(111)
//fmt.Println(data)
data_json
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
//this.Data["json"] = utils.CheckError(errors.New("Map转化为byte数组失败"),"异常")
//this.ServeJSON()
return
nil
,
err
}
//url := "https://test.wsmsd.cn/sit/api/v3/labs/trans/preorder" //聚合主扫
url
:=
"https://test.wsmsd.cn/sit/api/v3/labs/trans/micropay"
//聚合被扫
//url := "https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create" //聚合收银台
//调拉卡拉接口
err
,
_
,
_
=
lakala_post
(
url
,
data_json
)
if
err
!=
nil
{
//this.Data["json"] = utils.CheckError(err,"拉卡拉错误")
//this.ServeJSON()
return
nil
,
err
}
return
nil
,
nil
//response := make(map[string]string)
//response["m_web_url"] = m_web_url
//调拉卡拉接口
//err = lakala_post(url, data_json)
//if err != nil {
// this.Data["json"] = utils.CheckError(err,"拉卡拉错误")
// this.ServeJSON()
// return
//}
//
//this.Data["json"] = utils.Success(nil)
//this.ServeJSON()
}
\ No newline at end of file
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