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
40a19fed
Commit
40a19fed
authored
Jun 21, 2023
by
wangp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
2b79841b
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
156 additions
and
132 deletions
+156
-132
config.yaml
conf/dev/config.yaml
+24
-24
pay.go
repository/pay/pay.go
+132
-108
No files found.
conf/dev/config.yaml
View file @
40a19fed
...
...
@@ -52,10 +52,10 @@ log:
max_age
:
30
max_backups
:
7
sms
:
smskey
:
'
dbc2021888000000'
sendsmsurl
:
'
https://tsms.pet-dbc.cn/v1/send'
smscontent
:
'
【谛宝医生】登录验证码为:%s'
#
sms:
#
smskey: 'dbc2021888000000'
#
sendsmsurl: 'https://tsms.pet-dbc.cn/v1/send'
#
smscontent: '【谛宝医生】登录验证码为:%s'
# 支付
#payurl:
...
...
@@ -73,33 +73,33 @@ sms:
# port: '80'
#图片上传目录
uploadimage
:
upload_dir
:
'
credit_shop'
max_file_size
:
50000000
image_types
:
'
(jpg|jpeg|png|pdf|gif|zip|rar)'
accept_file_types
:
'
IMAGE_TYPES'
#
uploadimage:
#
upload_dir: 'credit_shop'
#
max_file_size: 50000000
#
image_types: '(jpg|jpeg|png|pdf|gif|zip|rar)'
#
accept_file_types: 'IMAGE_TYPES'
#OSS配置
oss
:
oss_url
:
'
https://dbc-static.oss-cn-beijing.aliyuncs.com/'
accesskeyid
:
'
LTAIDfwPBC9AnsRt'
accesskeysecret
:
'
Z6FtUptrAk0Sl6H8vrVBGZLbBzXEpO'
endpoint
:
'
oss-cn-beijing.aliyuncs.com'
bucket
:
'
dbc-static'
#
oss:
#
oss_url: 'https://dbc-static.oss-cn-beijing.aliyuncs.com/'
#
accesskeyid: 'LTAIDfwPBC9AnsRt'
#
accesskeysecret: 'Z6FtUptrAk0Sl6H8vrVBGZLbBzXEpO'
#
endpoint: 'oss-cn-beijing.aliyuncs.com'
#
bucket: 'dbc-static'
#阿里云 - 全国快递物流查询
alicloud
:
appcode
:
'
6d1da9eb15b540688a505c1814e0c25f'
#
alicloud:
#
appcode: '6d1da9eb15b540688a505c1814e0c25f'
#time_duration: 7200
#e签宝
esign
:
project_id
:
"
5111575783"
project_secret
:
"
5255e7159b6262b92b03c4e307a23ed2"
organ_auth_url
:
"
https://openapi2.tsign.cn:8444/realname/rest/external/organ/orgAuth"
info_auth_url
:
"
https://openapi2.tsign.cn:8444/realname/rest/external/organ/infoAuth-special"
#
esign:
#
project_id: "5111575783"
#
project_secret: "5255e7159b6262b92b03c4e307a23ed2"
#
organ_auth_url: "https://openapi2.tsign.cn:8444/realname/rest/external/organ/orgAuth"
#
info_auth_url: "https://openapi2.tsign.cn:8444/realname/rest/external/organ/infoAuth-special"
# jwt 与 des解密
jwtsecret
:
'
Rtg8BPKNEf5mo4mgvKONGPZZQSaJWNLijxJ52qRgq0iBb7'
deskey
:
'
yaoll123'
#
jwtsecret: 'Rtg8BPKNEf5mo4mgvKONGPZZQSaJWNLijxJ52qRgq0iBb7'
#
deskey: 'yaoll123'
#system_pay777
repository/pay/pay.go
View file @
40a19fed
...
...
@@ -12,10 +12,22 @@ import (
"errors"
"fmt"
"github.com/astaxie/beego/httplib"
rand2
"math/rand"
"strings"
"system_pay/models"
"time"
)
func
RandomString
(
n
int
)
string
{
var
letters
=
[]
byte
(
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
)
result
:=
make
([]
byte
,
n
)
rand2
.
Seed
(
time
.
Now
()
.
Unix
())
for
i
:=
range
result
{
result
[
i
]
=
letters
[
rand2
.
Intn
(
len
(
letters
))]
}
return
string
(
result
)
}
// 拉卡拉支付
func
UnifiedOrder
(
input
*
models
.
PlaceAnOrderParamInput
)
(
interface
{},
error
)
{
...
...
@@ -52,15 +64,18 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
// "extend_info": "自动化测试",
// "callback_url": ""
data2
:=
make
(
map
[
string
]
interface
{})
data2
[
"out_trade_no"
]
=
"FD660E1FAA3A4470933CDEDAE1EC1DEE"
//data2["out_trade_no"] = "FD660E1FAA3A4470933CDEDAE1EC1DUU"
data2
[
"out_trade_no"
]
=
RandomString
(
32
)
data2
[
"merchant_no"
]
=
"822290070111135"
data2
[
"term_no"
]
=
"29034705"
//data2["merchant_no"] = "8222900581201QB"
//data2["term_no"] = "D0027598"
data2
[
"auth_code"
]
=
"135178236713755038"
data2
[
"total_amount"
]
=
"0.01"
data2
[
"out_order_no"
]
=
"08F4542EEC6A4497BC419161747A92EE"
data2
[
"total_amount"
]
=
"123"
//data2["out_order_no"] = "08F4542EEC6A4497BC419161747A92UU"
data2
[
"out_order_no"
]
=
RandomString
(
32
)
data2
[
"order_efficient_time"
]
=
"20230620130000"
//订单有效期 格式yyyyMMddHHmmss,最大支持下单时间+2天
data2
[
"notify_url"
]
=
input
.
NoticeURL
//订单支付成功后商户接收订单通知的地址 http://xxx.xxx.com
...
...
@@ -227,108 +242,115 @@ func UnifiedOrder(input *models.PlaceAnOrderParamInput) (interface{}, error) {
//return nil, nil
}
// @Title
// @Description 拉卡拉统一支付
// @Param data body model.PlaceAnOrderParamInput true "输入项"
// @Success 200
// @router /unified_order [post]
//func (this *PayController)UnifiedOrder() {
//
// //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
// }
//
// //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
// }
//
// this.Data["json"] = utils.Success(nil)
// this.ServeJSON()
//}
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
)
{
...
...
@@ -366,13 +388,15 @@ func lakala_post(url string, data_json []byte) (error, string) {
//this.ServeJSON()
return
errors
.
New
(
temp
[
"msg"
]
.
(
string
)),
""
}
//return nil, temp["resp_data"]["counter_url"]
temp2
,
_
:=
temp
[
"resp_data"
]
.
(
map
[
string
]
string
)
temp2
,
_
:=
temp
[
"resp_data"
]
.
(
map
[
string
]
interface
{}
)
if
temp2
[
"counter_url"
]
==
""
{
fmt
.
Println
(
temp2
)
return
errors
.
New
(
"拉卡拉返回值「counter_url」为空错误"
),
""
}
return
nil
,
temp2
[
"counter_url"
]
return
nil
,
temp2
[
"counter_url"
]
.
(
string
)
}
func
getAuthorization
(
body
string
)
(
string
,
error
)
{
...
...
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