记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
董敬伟
liquidnet-bus-v1
Commits
1650f26c
Commit
1650f26c
authored
Jul 08, 2025
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
离线支付-斗拱接口下单
parent
ad80cb1e
Changes
26
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
813 additions
and
98 deletions
+813
-98
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+3
-0
GoblinBraceletOrderEntitiesVo.java
.../service/goblin/dto/vo/GoblinBraceletOrderEntitiesVo.java
+75
-0
GoblinBraceletOrderVo.java
...iquidnet/service/goblin/dto/vo/GoblinBraceletOrderVo.java
+172
-0
GoblinBraceletPayResultVo.java
...dnet/service/goblin/dto/vo/GoblinBraceletPayResultVo.java
+11
-0
OrderStatus.java
.../java/com/liquidnet/service/goblin/enums/OrderStatus.java
+41
-0
PayStatus.java
...in/java/com/liquidnet/service/goblin/enums/PayStatus.java
+44
-0
GoblinBraceletOrderPayParam.java
...net/service/goblin/param/GoblinBraceletOrderPayParam.java
+3
-3
BaseDougongRequest.java
...dnet/service/goblin/param/dougong/BaseDougongRequest.java
+32
-0
BaseDougongResponse.java
...net/service/goblin/param/dougong/BaseDougongResponse.java
+22
-0
DougongJsPayData.java
...uidnet/service/goblin/param/dougong/DougongJsPayData.java
+1
-1
DougongRequestParam.java
...net/service/goblin/param/dougong/DougongRequestParam.java
+5
-1
DougongSyncCallbackparam.java
...ervice/goblin/param/dougong/DougongSyncCallbackparam.java
+20
-0
IGoblinBraceLetOrderService.java
...t/service/goblin/service/IGoblinBraceLetOrderService.java
+2
-2
IGoblinDougongPayService.java
...dnet/service/goblin/service/IGoblinDougongPayService.java
+4
-3
RedisKeyExpireConst.java
.../liquidnet/service/base/constant/RedisKeyExpireConst.java
+2
-0
liquidnet-service-goblin-dev.yml
...-config/liquidnet-config/liquidnet-service-goblin-dev.yml
+11
-1
GoblinBraceletOrder.java
.../liquidnet/service/goblin/entity/GoblinBraceletOrder.java
+3
-29
GoblinBraceletOrderEntities.java
...et/service/goblin/entity/GoblinBraceletOrderEntities.java
+4
-4
goblin_recharge.sql
...in/liquidnet-service-goblin-impl/docu/goblin_recharge.sql
+2
-5
AppProperties.java
...idnet/service/goblin/config/properties/AppProperties.java
+36
-0
GoblinBraceletOrderController.java
...vice/goblin/controller/GoblinBraceletOrderController.java
+3
-2
GoblinBraceLetOrderServiceImpl.java
...e/goblin/service/impl/GoblinBraceLetOrderServiceImpl.java
+217
-6
GoblinDougongPayServiceImpl.java
...vice/goblin/service/impl/GoblinDougongPayServiceImpl.java
+64
-19
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+18
-0
sqlmap.properties
...-service-goblin-impl/src/main/resources/sqlmap.properties
+4
-1
GoblinDougongPayServiceImplTest.java
.../service/goblin/test/GoblinDougongPayServiceImplTest.java
+14
-21
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
1650f26c
...
...
@@ -359,6 +359,9 @@ public class GoblinRedisConst {
public
static
final
String
GOBLIN_RECHARGE_WRISTBAND
=
PREFIX
.
concat
(
"recharge:wristband"
);
public
static
final
String
GOBLIN_RECHARGE_MAIZHI_TOKEN
=
PREFIX
.
concat
(
"recharge:maizhitoken"
);
// 手环订单
public
static
final
String
GOBLIN_BRACELET_USER
=
PREFIX
.
concat
(
"bracelet:userId:"
);
/* ----------------------------------------------------------------- */
public
static
final
String
GOBLIN_ORDER_LOG
=
PREFIX
.
concat
(
"order:log:"
);
//无用
public
static
final
String
GOBLIN_EXPRESS_PRICE
=
PREFIX
.
concat
(
"express:price"
);
//快递费
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinBraceletOrderEntitiesVo.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
* 手环-子订单VO
*/
@Data
public
class
GoblinBraceletOrderEntitiesVo
{
/**
* 订单详情ID
*/
private
String
orderEntitiesId
;
/**
* 订单详情关联ID
*/
private
String
orderId
;
/**
* 商品类型:1:手环 2:充值面值
*/
private
Integer
goodsType
;
/**
* 商品ID wristband_id:手环ID amount_id:充值金额ID
*/
private
String
goodsId
;
/**
* 商品名称
*/
private
String
goodsName
;
/**
* 商品金额
*/
private
BigDecimal
goodsPrice
;
/**
* 订单状态:
* 0 待付款
* 1 已付款
* 2 已关闭
* 3 正在退款
* 4 已退款
* 5 待关闭
* 6 部分退款
*/
private
Integer
status
;
/**
* 支付状态:
* 0 未支付
* 1 已支付
* 2 支付失败
*/
private
Integer
payStatus
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinBraceletOrderVo.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* 手环-订单VO
*/
@Data
public
class
GoblinBraceletOrderVo
{
/**
* 订单ID
*/
private
String
orderId
;
/**
* 用户ID
*/
private
String
userId
;
/**
* 绑定用户姓名
*/
private
String
bindName
;
/**
* 绑定用户手机号
*/
private
String
bindMobile
;
/**
* 绑定用户身份证号码
*/
private
String
bindIdcard
;
/**
* 请求日期
*/
private
String
reqDate
;
/**
* 商品描述
*/
private
String
goodsDesc
;
/**
* 请求流水号
*/
private
String
reqSeqId
;
/**
* 全局流水号
*/
private
String
hfSeqId
;
/**
* 交易类型:
* T_JSAPI: 微信公众号支付
* T_MINIAPP: 微信小程序支付
* A_JSAPI: 支付宝JS
* A_NATIVE: 支付宝正扫
* U_NATIVE: 银联正扫
* U_JSAPI: 银联 JS
* D_NATIVE: 数字人民币正扫
* T_H5:微信直连H5支付
* T_APP:微信APP支付
* T_NATIVE:微信正扫
*/
private
String
tradeType
;
/**
* ATU真实商户号
*/
private
String
atuSubMerId
;
/**
* 用户账单上的交易订单号
*/
private
String
outTransId
;
/**
* 用户账单上的商户订单号
*/
private
String
partyOrderId
;
/**
* 支付完成时间 格式yyyyMMddHHmmss
*/
private
String
endTime
;
/**
* 入账时间 格式为yyyyMMdd
*/
private
String
acctDate
;
/**
* 单价
*/
private
BigDecimal
price
;
/**
* 应付价格
*/
private
BigDecimal
priceTotal
;
/**
* 实付价格
*/
private
BigDecimal
priceActual
;
/**
* 退款价格
*/
private
BigDecimal
priceRefund
;
/**
* 退款扣除的手续费金额
*/
private
BigDecimal
refundPriceCharges
;
/**
* 退款数
*/
private
Integer
refundNumber
;
/**
* 支付时间
*/
private
String
timePay
;
/**
* 订单状态:
* 0 待付款
* 1 已付款
* 2 已关闭
* 3 正在退款
* 4 已退款
* 5 待关闭
* 6 部分退款
*/
private
Integer
status
;
/**
* 支付状态:
* 0 未支付
* 1 已支付
* 2 支付失败
*/
private
Integer
payStatus
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
/**
* 订单详细列表VO
*/
private
List
<
GoblinBraceletOrderEntitiesVo
>
orderEntitiesDetailVoList
;
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinBraceletPayResultVo.java
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"手环下单结果vo"
)
public
class
GoblinBraceletPayResultVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
position
=
1
,
value
=
"订单ID"
)
private
String
orderId
;
@ApiModelProperty
(
position
=
3
,
value
=
"价格"
)
private
BigDecimal
price
;
@ApiModelProperty
(
position
=
5
,
value
=
"三方支付信息"
)
private
Object
payInfo
;
private
static
final
GoblinBraceletPayResultVo
obj
=
new
GoblinBraceletPayResultVo
();
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/enums/OrderStatus.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
enums
;
/**
* 订单状态枚举
*/
public
enum
OrderStatus
{
PENDING_PAYMENT
(
0
,
"待付款"
),
PAID
(
1
,
"已付款"
),
CLOSED
(
2
,
"已关闭"
),
REFUNDING
(
3
,
"正在退款"
),
REFUNDED
(
4
,
"已退款"
),
PENDING_CLOSE
(
5
,
"待关闭"
),
PARTIAL_REFUND
(
6
,
"部分退款"
);
private
final
int
code
;
private
final
String
description
;
OrderStatus
(
int
code
,
String
description
)
{
this
.
code
=
code
;
this
.
description
=
description
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getDescription
()
{
return
description
;
}
// 通过code获取对应的枚举值
public
static
OrderStatus
fromCode
(
int
code
)
{
for
(
OrderStatus
status
:
values
())
{
if
(
status
.
getCode
()
==
code
)
{
return
status
;
}
}
throw
new
IllegalArgumentException
(
"无效的状态码: "
+
code
);
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/enums/PayStatus.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
enums
;
/**
* 支付状态枚举
*/
public
enum
PayStatus
{
NOT_PAID
(
0
,
"未支付"
),
PAID
(
1
,
"已支付"
),
PAYMENT_FAILED
(
2
,
"支付失败"
);
private
final
int
code
;
private
final
String
description
;
PayStatus
(
int
code
,
String
description
)
{
this
.
code
=
code
;
this
.
description
=
description
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getDescription
()
{
return
description
;
}
// 根据 code 获取枚举实例
public
static
PayStatus
fromCode
(
int
code
)
{
for
(
PayStatus
status
:
values
())
{
if
(
status
.
getCode
()
==
code
)
{
return
status
;
}
}
throw
new
IllegalArgumentException
(
"无效的支付状态码: "
+
code
);
}
@Override
public
String
toString
()
{
return
description
;
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/GoblinBraceletOrderPayParam.java
View file @
1650f26c
...
...
@@ -23,15 +23,15 @@ public class GoblinBraceletOrderPayParam implements Serializable {
private
String
amountId
;
@ApiModelProperty
(
value
=
"姓名"
)
@NotBlank
(
message
=
"姓名不能为空"
)
@NotBlank
(
message
=
"
绑定
姓名不能为空"
)
private
String
name
;
@ApiModelProperty
(
value
=
"手机号"
)
@NotBlank
(
message
=
"手机号不能为空"
)
@NotBlank
(
message
=
"
绑定
手机号不能为空"
)
private
String
mobile
;
@ApiModelProperty
(
value
=
"身份证号码"
)
@NotBlank
(
message
=
"身份证号码不能为空"
)
@NotBlank
(
message
=
"
绑定
身份证号码不能为空"
)
private
String
idCard
;
@ApiModelProperty
(
value
=
"子商户用户标识"
)
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/dougong/BaseDougongRequest.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
param
.
dougong
;
import
lombok.Data
;
@Data
public
class
BaseDougongRequest
<
T
>
{
/**
* 系统号
* 渠道商/商户的huifu_id
* (1)当主体为渠道商时,此字段填写渠道商huifu_id;
* (2)当主体为直连商户时,此字段填写商户huifu_id;
*/
private
String
sysId
;
/**
* 产品号
* 汇付分配的产品号,示例值:MCS
*/
private
String
productId
;
/**
* 加签结果
*/
private
String
sign
;
/**
* 数据
*/
private
T
data
;
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/dougong/BaseDougongResponse.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
param
.
dougong
;
import
lombok.Data
;
/**
* 同步返回参数
* @param <T>
*/
@Data
public
class
BaseDougongResponse
<
T
>
{
/**
* 签名
*/
private
String
sign
;
/**
* 响应内容体
*/
private
T
data
;
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/dougong/Dougong
PayParam
.java
→
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/dougong/Dougong
JsPayData
.java
View file @
1650f26c
...
...
@@ -5,7 +5,7 @@ import lombok.Data;
import
java.util.List
;
@Data
public
class
Dougong
PayParam
{
public
class
Dougong
JsPayData
{
// 请求日期
private
String
reqDate
;
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/dougong/DougongRequestParam.java
View file @
1650f26c
...
...
@@ -5,6 +5,10 @@ import lombok.Data;
import
java.util.List
;
/**
* 斗拱-请求jspay-参数
*/
@Data
public
class
DougongRequestParam
{
...
...
@@ -46,7 +50,7 @@ public class DougongRequestParam {
@JsonProperty
(
"time_expire"
)
private
String
timeExpire
;
// 微信参数集合
// 微信参数集合
WxData
@JsonProperty
(
"wx_data"
)
private
String
wxData
;
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/dougong/DougongSyncCallbackparam.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
param
.
dougong
;
import
lombok.Data
;
/**
* 异步返回参数
* 公共返回
*/
@Data
public
class
DougongSyncCallbackparam
{
private
String
respCode
;
private
String
respDesc
;
private
String
sign
;
private
String
respData
;
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/IGoblinBraceLetOrderService.java
View file @
1650f26c
...
...
@@ -8,10 +8,10 @@ public interface IGoblinBraceLetOrderService {
/**
* 下单
* @param
data
* @param
payParam
* @return
*/
ResponseDto
<
GoblinBraceletPayResultVo
>
checkOrder
(
GoblinBraceletOrderPayParam
data
);
ResponseDto
<
GoblinBraceletPayResultVo
>
checkOrder
(
GoblinBraceletOrderPayParam
payParam
);
/**
* 校验订单状态
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/IGoblinDougongPayService.java
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
service
;
import
com.liquidnet.service.goblin.param.dougong.DougongRequestParam
;
import
com.liquidnet.service.goblin.param.dougong.DougongJsPayData
;
import
java.util.Map
;
public
interface
IGoblinDougongPayService
{
/**
*
* @return
*/
Object
jsPay
(
DougongRequestParam
requestParam
);
Map
<
String
,
Object
>
jsPay
(
DougongJsPayData
data
);
}
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/RedisKeyExpireConst.java
View file @
1650f26c
...
...
@@ -49,4 +49,6 @@ public class RedisKeyExpireConst {
// sweet:doudou:scope:mobile 过期时间3天
public
static
final
long
SWEET_DOUDOU_SCOPE_MOBILE_EXPIRE
=
3
*
24
*
60
*
60
;
// GOBLIN_BRACELET_USER 过期时间3天
public
static
final
long
GOBLIN_BRACELET_USER_EXPIRE
=
30
*
24
*
60
*
60
;
}
liquidnet-bus-config/liquidnet-config/liquidnet-service-goblin-dev.yml
View file @
1650f26c
...
...
@@ -15,4 +15,14 @@ liquidnet:
database-name
:
dev_ln_scene
mongodb
:
sslEnabled
:
false
database
:
dev_ln_scene
\ No newline at end of file
database
:
dev_ln_scene
lxpay
:
apps
:
dougong
:
huifu-id
:
'
6666000109133323'
sys-id
:
'
6666000108840829'
product-id
:
'
YYZY'
sub-app-id
:
'
wxdfe9a5d141f96685'
public-key
:
"
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkmP0eyQVeGHVxk/4+Zq9R6tm8vmQZaMAvtvy5D/Ki3lvhfRn8T3R3vP5xTpp2zAtmZzFnc1k4DswYBsv7lsxwseoJ3sIM6of6NYnf+39CK+NhKSsdDNDET2KCxD5Gip3WJVtgP3P4w3P/U2jCi8Xzm9sxy3XZ3TSZuokvX77UnfBZTFMuGjCmZFcuM6VjDOxoaEtnYhAVLOQItb3Jr1vvIg4vrhCWBus9YVgl3Ua5qtTccmpspnFbY3ix0UFrmHczTaPWrxKMrnEIDurgmMPXPiyR67Z/AcvcJ8vgvaVHnINmDb0hlRUkI623P9dO/fPswaNIEj0ZeoZHcdLya07swIDAQAB"
private-key
:
"
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFOYOjLTndQiYAiFQf4ZZ6UA1T5fg2PH16XboAORgLBz/SjeiIMmIdExP1NFDH6SNqcQk6ginqk+gW0CBojEE5Loj3ROqtBRnBehVavO89xnvezsj1NZDqw416GYPCU0n6198A73c3Kn0OWoiivF5BJDra88z/zcApNzAeiVw6loZEEvzNRpfuKzs6uH6NeFQnY2wtePQwTAW5d89gUyewJSzwPPVU8r/hiPVKSB0AEkGT85UOBzaEKyAEqPfLAS/uY49Qdq+/j6lszNpjWcb6vkIeoHD3wmZdoHR7uLc+VxSk7kvJyLUv6SBtH3/jTy4ghFLQWJHagLB2QCPy9ompAgMBAAECggEAcG4JDMyLYAaFg2g0DLic/70C3AENLl3tagRkNBxYCHFpgK5FEN8n70sg5XedVVkiR1uI10G8g20tsVOUJgVOaTqN+effoCJ4PENMSR3LhHvRwYJALQkMQ8iWrjQ9WFoComzNQ8s/OsON5tDVc2/Oi3QL2SWCh5DTKqu7Uq0bVonYUX2IT8x7zWbE+tgphjI76JRDp4gkjh5ebebNBhqsOjYelNNWF3g7rVAr4zB2TMRM6N/66z/qLRk+mQQEhShojS2c2pyAtNC+7C6VZiX+XxH4ArSbf6AQyaMmPj4d3rMAYG916WNfb9GkqFyZhRNbMwRsAIfErS46PDKpKhInwQKBgQDnu4vV2U7Sqc/ab3hXh8H6d1HvxvTb7634XNyT/qtJ4nMT9CCxZE88iesqJyXNxzEElpLJRlwNPgDaJfs8qEjJ9zF6N/7ip9VPxITd5/6jBuILiugJSa7epvdZAtyVo1xOf2BN7cX/4Ul/SE11YjgyjLr1b3U4SY/Bc8w01Pmb+wKBgQDZ4Nq8u+k4GQh6G9pFSwgDxMnPUGX4vnWew7zsyy6z45tXuzFZrvpuzWTUUtnGalzXYGaUqm5ivmmP9+CCZBWaxZkSTF8ONRm1OXTRCJlF57AzXZVVc4+inhM8WnX6KIN/FDu4nlTf7wN6J42BcqOkz8KS9N7twpYartJnTPG7qwKBgQDhqVUHLtL/erYadSqvslhH3CJCaXDRLJoxndx/kiSjko2WBMpBdPlkbro/FlhOB4fIfAj9UDMcAiE6TnpWG1qmsr3P0u+3MNEdGLZ6kgz6HR3LN722LbbIw7djStIcNjURjCDwQnfqMi0scfBcOwWW1EzL7XotEhWXwXg+ipd4OQKBgQCotysK7UQ6sX/T9s99yw1IxdE0nWBpTysLpy0b/HaMzFqVhBpCBXJd7OUAWavTrrd3/GlTA+r4wdRCrMMIlXH5aLwQ5FzTRqFCqVxhJhRygmf6TqR+CD+YwGnK2Y30Cf1RoZxhaRH2WkJKDGjSbbB0xoE4hTA/0uejf+7kGTwzgwKBgBgcuEy5fxR5O+HkV/Lay/rrHznbJxOEJ/EiV2WDKDi1Acp1QZAKb1aguqx15j7t9exGUr6Y5eCfAFOQfzlePJuLthe5APEsuzv9nslnVusamWKkxoWl6h36OYQjTf1FCgOD7QCjhaiKKQQLsZGigmMKy2D5utIWQdNoLnlhayan"
notify-url
:
'
https://baidu.com'
liquidnet-bus-do/liquidnet-service-goblin-do/src/main/java/com/liquidnet/service/goblin/entity/Goblin
Recharge
Order.java
→
liquidnet-bus-do/liquidnet-service-goblin-do/src/main/java/com/liquidnet/service/goblin/entity/Goblin
Bracelet
Order.java
View file @
1650f26c
...
...
@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
Goblin
RechargeOrder
implements
Serializable
{
public
class
Goblin
BraceletOrder
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -34,16 +34,6 @@ public class GoblinRechargeOrder implements Serializable {
*/
private
String
userId
;
/**
* 用户昵称
*/
private
String
userName
;
/**
* 用户手机号
*/
private
String
userMobile
;
/**
* 绑定用户姓名
*/
...
...
@@ -99,22 +89,6 @@ public class GoblinRechargeOrder implements Serializable {
*/
private
String
atuSubMerId
;
/**
* 终端类型:
* 01-智能POS
* 02-扫码POS
* 03-云音箱
* 04-台牌
* 05-云打印
* 06-扫脸设备
* 07-收银机
* 08-收银助手
* 09-传统POS
* 10-一体音箱
* 11-虚拟终端
*/
private
String
deviceType
;
/**
* 用户账单上的交易订单号
*/
...
...
@@ -180,7 +154,7 @@ public class GoblinRechargeOrder implements Serializable {
* 5 待关闭
* 6 部分退款
*/
private
Byte
status
;
private
Integer
status
;
/**
* 支付状态:
...
...
@@ -188,7 +162,7 @@ public class GoblinRechargeOrder implements Serializable {
* 1 已支付
* 2 支付失败
*/
private
Byte
payStatus
;
private
Integer
payStatus
;
/**
* 创建时间
...
...
liquidnet-bus-do/liquidnet-service-goblin-do/src/main/java/com/liquidnet/service/goblin/entity/Goblin
Recharge
OrderEntities.java
→
liquidnet-bus-do/liquidnet-service-goblin-do/src/main/java/com/liquidnet/service/goblin/entity/Goblin
Bracelet
OrderEntities.java
View file @
1650f26c
...
...
@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
Goblin
Recharge
OrderEntities
implements
Serializable
{
public
class
Goblin
Bracelet
OrderEntities
implements
Serializable
{
/**
* 主键ID
...
...
@@ -37,7 +37,7 @@ public class GoblinRechargeOrderEntities implements Serializable {
/**
* 商品类型:1:手环 2:充值面值
*/
private
Byte
goodsType
;
private
Integer
goodsType
;
/**
* 商品ID wristband_id:手环ID amount_id:充值金额ID
...
...
@@ -64,7 +64,7 @@ public class GoblinRechargeOrderEntities implements Serializable {
* 5 待关闭
* 6 部分退款
*/
private
Byte
status
;
private
Integer
status
;
/**
* 支付状态:
...
...
@@ -72,7 +72,7 @@ public class GoblinRechargeOrderEntities implements Serializable {
* 1 已支付
* 2 支付失败
*/
private
Byte
payStatus
;
private
Integer
payStatus
;
/**
* 创建时间
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/docu/goblin_recharge.sql
View file @
1650f26c
...
...
@@ -24,12 +24,10 @@ CREATE TABLE IF NOT EXISTS goblin_recharge_amount
-- 手环订单表
CREATE
TABLE
`goblin_recharge_order`
(
CREATE
TABLE
goblin_bracelet_order
(
`mid`
int
(
10
)
unsigned
NOT
NULL
AUTO_INCREMENT
,
`order_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'order_id'
,
`user_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户id'
,
`user_name`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户昵称'
,
`user_mobile`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户手机号'
,
`bind_name`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'绑定用户姓名'
,
`bind_mobile`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'绑定用户手机号'
,
`bind_idcard`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'绑定用户身份证号码'
,
...
...
@@ -39,7 +37,6 @@ CREATE TABLE `goblin_recharge_order` (
`hf_seq_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'全局流水号'
,
`trade_type`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'交易类型 T_JSAPI: 微信公众号支付 T_MINIAPP: 微信小程序支付 A_JSAPI: 支付宝JS A_NATIVE: 支付宝正扫 U_NATIVE: 银联正扫 U_JSAPI: 银联 JS D_NATIVE: 数字人民币正扫 T_H5:微信直连H5支付 T_APP:微信APP支付 T_NATIVE:微信正扫'
,
`atu_sub_mer_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'ATU真实商户号'
,
`device_type`
varchar
(
20
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'终端类型 01-智能POS 02-扫码POS 03-云音箱 04-台牌 05-云打印 06-扫脸设备 07-收银机 08-收银助手 09-传统POS 10-一体音箱 11-虚拟终端'
,
`out_trans_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户账单上的交易订单号'
,
`party_order_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'用户账单上的商户订单号'
,
`end_time`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'支付完成时间 格式yyyyMMddHHmmss'
,
...
...
@@ -60,7 +57,7 @@ CREATE TABLE `goblin_recharge_order` (
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
COMMENT
=
'手环订单表'
;
-- 手环订单详情表
CREATE
TABLE
`goblin_
recharge
_order_entities`
(
CREATE
TABLE
`goblin_
bracelet
_order_entities`
(
`mid`
int
(
10
)
unsigned
NOT
NULL
AUTO_INCREMENT
,
`order_entities_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'order_entities_id'
,
`order_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
NOT
NULL
DEFAULT
''
COMMENT
'订单详情关联id'
,
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/config/properties/AppProperties.java
0 → 100644
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
config
.
properties
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
@ConfigurationProperties
(
prefix
=
"liquidnet.lxpay"
)
@Component
@Setter
@Getter
public
class
AppProperties
{
private
Map
<
String
,
AppInfo
>
apps
;
@Data
public
static
class
AppInfo
{
private
String
productId
;
private
String
sysId
;
private
String
huifuId
;
private
String
subAppId
;
private
String
publicKey
;
private
String
privateKey
;
private
String
notifyUrl
;
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinBraceletOrderController.java
View file @
1650f26c
...
...
@@ -4,6 +4,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.base.codec.vo.EncryptedReq
;
import
com.liquidnet.service.goblin.dto.vo.GoblinBraceletPayResultVo
;
import
com.liquidnet.service.goblin.param.GoblinBraceletOrderPayParam
;
import
com.liquidnet.service.goblin.param.dougong.DougongSyncCallbackparam
;
import
com.liquidnet.service.goblin.service.IGoblinBraceLetOrderService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
@@ -19,7 +20,7 @@ import javax.validation.constraints.NotBlank;
@Slf4j
@Api
(
tags
=
"商城-手环相关"
)
@RestController
@RequestMapping
(
"/
goblin/
bracelet"
)
@RequestMapping
(
"/bracelet"
)
public
class
GoblinBraceletOrderController
{
@Autowired
...
...
@@ -50,7 +51,7 @@ public class GoblinBraceletOrderController {
@PostMapping
(
"/callback"
)
@ApiOperation
(
"斗拱支付回调"
)
public
ResponseDto
<
Boolean
>
dougongCallBack
()
{
public
ResponseDto
<
Boolean
>
dougongCallBack
(
@RequestBody
DougongSyncCallbackparam
dougongSyncCallbackparam
)
{
return
braceLetOrderService
.
dougongCallBack
();
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinBraceLetOrderServiceImpl.java
View file @
1650f26c
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinDougongPayServiceImpl.java
View file @
1650f26c
...
...
@@ -4,53 +4,98 @@ import com.huifu.bspay.sdk.opps.core.BasePay;
import
com.huifu.bspay.sdk.opps.core.config.MerConfig
;
import
com.huifu.bspay.sdk.opps.core.net.BasePayRequest
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.goblin.config.properties.AppProperties
;
import
com.liquidnet.service.goblin.param.dougong.DougongJsPayData
;
import
com.liquidnet.service.goblin.param.dougong.DougongRequestParam
;
import
com.liquidnet.service.goblin.service.IGoblinDougongPayService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
import
java.util.Map
;
@Slf4j
@Service
public
class
GoblinDougongPayServiceImpl
implements
IGoblinDougongPayService
{
// 汇付分配的产品号
public
static
final
String
DEMO_PRODUCT_ID
=
"YYZY"
;
private
final
AppProperties
.
AppInfo
appInfo
;
// 汇付分配的系统号
public
static
final
String
DEMO_SYS_ID
=
"6666000108840829"
;
// 服务商私钥,用于调用接口时进行签名
public
static
final
String
DEMO_RSA_PRIVATE_KEY
=
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFOYOjLTndQiYAiFQf4ZZ6UA1T5fg2PH16XboAORgLBz/SjeiIMmIdExP1NFDH6SNqcQk6ginqk+gW0CBojEE5Loj3ROqtBRnBehVavO89xnvezsj1NZDqw416GYPCU0n6198A73c3Kn0OWoiivF5BJDra88z/zcApNzAeiVw6loZEEvzNRpfuKzs6uH6NeFQnY2wtePQwTAW5d89gUyewJSzwPPVU8r/hiPVKSB0AEkGT85UOBzaEKyAEqPfLAS/uY49Qdq+/j6lszNpjWcb6vkIeoHD3wmZdoHR7uLc+VxSk7kvJyLUv6SBtH3/jTy4ghFLQWJHagLB2QCPy9ompAgMBAAECggEAcG4JDMyLYAaFg2g0DLic/70C3AENLl3tagRkNBxYCHFpgK5FEN8n70sg5XedVVkiR1uI10G8g20tsVOUJgVOaTqN+effoCJ4PENMSR3LhHvRwYJALQkMQ8iWrjQ9WFoComzNQ8s/OsON5tDVc2/Oi3QL2SWCh5DTKqu7Uq0bVonYUX2IT8x7zWbE+tgphjI76JRDp4gkjh5ebebNBhqsOjYelNNWF3g7rVAr4zB2TMRM6N/66z/qLRk+mQQEhShojS2c2pyAtNC+7C6VZiX+XxH4ArSbf6AQyaMmPj4d3rMAYG916WNfb9GkqFyZhRNbMwRsAIfErS46PDKpKhInwQKBgQDnu4vV2U7Sqc/ab3hXh8H6d1HvxvTb7634XNyT/qtJ4nMT9CCxZE88iesqJyXNxzEElpLJRlwNPgDaJfs8qEjJ9zF6N/7ip9VPxITd5/6jBuILiugJSa7epvdZAtyVo1xOf2BN7cX/4Ul/SE11YjgyjLr1b3U4SY/Bc8w01Pmb+wKBgQDZ4Nq8u+k4GQh6G9pFSwgDxMnPUGX4vnWew7zsyy6z45tXuzFZrvpuzWTUUtnGalzXYGaUqm5ivmmP9+CCZBWaxZkSTF8ONRm1OXTRCJlF57AzXZVVc4+inhM8WnX6KIN/FDu4nlTf7wN6J42BcqOkz8KS9N7twpYartJnTPG7qwKBgQDhqVUHLtL/erYadSqvslhH3CJCaXDRLJoxndx/kiSjko2WBMpBdPlkbro/FlhOB4fIfAj9UDMcAiE6TnpWG1qmsr3P0u+3MNEdGLZ6kgz6HR3LN722LbbIw7djStIcNjURjCDwQnfqMi0scfBcOwWW1EzL7XotEhWXwXg+ipd4OQKBgQCotysK7UQ6sX/T9s99yw1IxdE0nWBpTysLpy0b/HaMzFqVhBpCBXJd7OUAWavTrrd3/GlTA+r4wdRCrMMIlXH5aLwQ5FzTRqFCqVxhJhRygmf6TqR+CD+YwGnK2Y30Cf1RoZxhaRH2WkJKDGjSbbB0xoE4hTA/0uejf+7kGTwzgwKBgBgcuEy5fxR5O+HkV/Lay/rrHznbJxOEJ/EiV2WDKDi1Acp1QZAKb1aguqx15j7t9exGUr6Y5eCfAFOQfzlePJuLthe5APEsuzv9nslnVusamWKkxoWl6h36OYQjTf1FCgOD7QCjhaiKKQQLsZGigmMKy2D5utIWQdNoLnlhayan"
;
public
GoblinDougongPayServiceImpl
(
AppProperties
appProperties
)
{
this
.
appInfo
=
appProperties
.
getApps
().
get
(
"dougong"
);
if
(
this
.
appInfo
==
null
)
{
throw
new
IllegalArgumentException
(
"找不到应用配置"
);
}
}
// 汇付公钥,用于对汇付返回报文进行签名验证
public
static
final
String
DEMO_RSA_PUBLIC_KEY
=
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkmP0eyQVeGHVxk/4+Zq9R6tm8vmQZaMAvtvy5D/Ki3lvhfRn8T3R3vP5xTpp2zAtmZzFnc1k4DswYBsv7lsxwseoJ3sIM6of6NYnf+39CK+NhKSsdDNDET2KCxD5Gip3WJVtgP3P4w3P/U2jCi8Xzm9sxy3XZ3TSZuokvX77UnfBZTFMuGjCmZFcuM6VjDOxoaEtnYhAVLOQItb3Jr1vvIg4vrhCWBus9YVgl3Ua5qtTccmpspnFbY3ix0UFrmHczTaPWrxKMrnEIDurgmMPXPiyR67Z/AcvcJ8vgvaVHnINmDb0hlRUkI623P9dO/fPswaNIEj0ZeoZHcdLya07swIDAQAB"
;
static
{
@PostConstruct
public
void
init
()
{
MerConfig
merConfig
=
new
MerConfig
();
merConfig
.
setProcutId
(
DEMO_PRODUCT_ID
);
merConfig
.
setSysId
(
DEMO_SYS_ID
);
merConfig
.
setRsaPrivateKey
(
DEMO_RSA_PRIVATE_KEY
);
merConfig
.
setRsaPublicKey
(
DEMO_RSA_PUBLIC_KEY
);
merConfig
.
setProcutId
(
appInfo
.
getProductId
()
);
merConfig
.
setSysId
(
appInfo
.
getSysId
()
);
merConfig
.
setRsaPrivateKey
(
appInfo
.
getPrivateKey
()
);
merConfig
.
setRsaPublicKey
(
appInfo
.
getPublicKey
()
);
try
{
BasePay
.
initWithMerConfig
(
merConfig
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
log
.
error
(
"初始化支付配置失败"
,
e
);
throw
new
RuntimeException
(
"初始化支付配置失败"
,
e
);
}
}
@Override
public
Object
jsPay
(
DougongRequestParam
requestParam
)
{
public
Map
<
String
,
Object
>
jsPay
(
DougongJsPayData
data
)
{
DougongRequestParam
requestParam
=
buildDougongRequestParam
(
data
);
log
.
info
(
"request param: {}."
,
JsonUtils
.
toJson
(
requestParam
));
if
(
requestParam
==
null
)
{
log
.
error
(
"构建下单参数失败"
);
return
null
;
}
try
{
Map
<
String
,
Object
>
map
=
JsonUtils
.
fromJson
(
JsonUtils
.
toJson
(
requestParam
),
Map
.
class
);
//3. 发起API调用
Map
<
String
,
Object
>
response
=
BasePayRequest
.
requestBasePay
(
"v3/trade/payment/jspay"
,
map
,
null
,
false
);
return
response
;
log
.
info
(
"response: {}."
,
JsonUtils
.
toJson
(
response
));
if
(
response
!=
null
&&
"00000100"
.
equals
(
response
.
get
(
"resp_code"
))
&&
"P"
.
equals
(
response
.
get
(
"trans_stat"
))){
return
response
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"error"
,
e
);
}
return
new
Object
();
return
null
;
}
private
DougongRequestParam
buildDougongRequestParam
(
DougongJsPayData
data
){
if
(
data
==
null
)
{
return
null
;
}
DougongRequestParam
requestParam
=
new
DougongRequestParam
();
requestParam
.
setReqDate
(
data
.
getReqDate
());
requestParam
.
setReqSeqId
(
data
.
getReqSeqId
());
requestParam
.
setHuifuId
(
appInfo
.
getHuifuId
());
requestParam
.
setGoodsDesc
(
data
.
getGoodsDesc
());
requestParam
.
setTradeType
(
data
.
getTradeType
());
requestParam
.
setTransAmt
(
data
.
getTransAmt
());
requestParam
.
setTimeExpire
(
data
.
getTimeExpire
());
requestParam
.
setWxData
(
buildWxData
(
data
));
requestParam
.
setNotifyUrl
(
appInfo
.
getNotifyUrl
());
return
requestParam
;
}
private
String
buildWxData
(
DougongJsPayData
data
)
{
DougongRequestParam
.
WxData
wxData
=
new
DougongRequestParam
.
WxData
();
wxData
.
setSubAppid
(
appInfo
.
getSubAppId
());
wxData
.
setSubOpenid
(
data
.
getSubOpenid
());
wxData
.
setBody
(
data
.
getGoodsDesc
());
wxData
.
setDetail
(
buildWxDataDetail
(
data
));
return
JsonUtils
.
toJson
(
wxData
);
}
private
DougongRequestParam
.
WxDataDetail
buildWxDataDetail
(
DougongJsPayData
data
)
{
DougongRequestParam
.
WxDataDetail
wxDataDetail
=
new
DougongRequestParam
.
WxDataDetail
();
wxDataDetail
.
setCostPrice
(
data
.
getTransAmt
());
wxDataDetail
.
setGoodsDetail
(
data
.
getGoodsDetailList
());
return
wxDataDetail
;
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
1650f26c
...
...
@@ -8,6 +8,7 @@ import com.liquidnet.commons.lang.util.JsonUtils;
import
com.liquidnet.commons.lang.util.RandomUtil
;
import
com.liquidnet.service.base.ErrorMapping
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.constant.RedisKeyExpireConst
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
...
...
@@ -2951,6 +2952,23 @@ public class GoblinRedisUtils {
}
}
public
void
setBraceletOrderVo
(
GoblinBraceletOrderVo
orderVo
)
{
String
key
=
GoblinRedisConst
.
GOBLIN_BRACELET_USER
.
concat
(
orderVo
.
getUserId
()).
concat
(
"orderId:"
).
concat
(
orderVo
.
getOrderId
());
redisUtil
.
set
(
key
,
orderVo
,
RedisKeyExpireConst
.
GOBLIN_BRACELET_USER_EXPIRE
);
}
public
GoblinBraceletOrderVo
getBraceletOrderVo
(
String
uid
,
String
orderId
){
String
key
=
GoblinRedisConst
.
GOBLIN_BRACELET_USER
.
concat
(
uid
).
concat
(
"orderId:"
).
concat
(
orderId
);
Object
obj
=
redisUtil
.
get
(
key
);
if
(
obj
==
null
)
{
// TODO 从数据库查询
return
null
;
}
else
{
return
(
GoblinBraceletOrderVo
)
obj
;
}
}
/* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
/* ---------------------------------------- ---------------------------------------- */
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/resources/sqlmap.properties
View file @
1650f26c
...
...
@@ -194,4 +194,7 @@ goblin_sku.stock=UPDATE goblin_goods_sku SET sku_stock = ? , stock = ?, updated_
#----
candy_user_coupon.update_apply_refund
=
UPDATE candy_user_coupon SET state=?,operator=?,updated_at=? WHERE ucoupon_id=?
#----
#----
\ No newline at end of file
#----
# ---- \u624B\u73AF\u8BA2\u5355 ----
goblin_bracelet_order_insert
=
INSERT INTO `goblin_bracelet_order`(`order_id`, `user_id`, `bind_name`, `bind_mobile`, `bind_idcard`, `req_date`, `goods_desc`, `req_seq_id`, `hf_seq_id`, `trade_type`, `atu_sub_mer_id`, `party_order_id`, `price`, `price_total`, `price_refund`, `refund_price_charges`, `refund_number`, `status`, `pay_status`, `created_at`, `updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
goblin_bracelet_order_entities_insert
=
INSERT INTO `goblin_bracelet_order_entities`(`order_entities_id`, `order_id`, `goods_type`, `goods_id`, `goods_name`, `goods_price`, `status`, `pay_status`, `created_at`, `updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?)
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/test/java/com/liquidnet/service/goblin/test/GoblinDougongPayServiceImplTest.java
View file @
1650f26c
package
com
.
liquidnet
.
service
.
goblin
.
test
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.goblin.param.dougong.DougongJsPayData
;
import
com.liquidnet.service.goblin.param.dougong.DougongRequestParam
;
import
com.liquidnet.service.goblin.service.IGoblinDougongPayService
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -47,20 +49,13 @@ public class GoblinDougongPayServiceImplTest {
String
goodsDesc
=
"手环充值"
;
// 商品金额
BigDecimal
totalAmt
=
new
BigDecimal
(
"51.00"
);
// 商品请求流水号
String
setReqSeqId
=
"rQ20250704120340912341"
;
// 请求日期
String
reqDate
=
"2025070
4
"
;
String
reqDate
=
"2025070
7
"
;
// 交易类型
String
tradeType
=
"T_MINIAPP"
;
DougongRequestParam
requestParam
=
new
DougongRequestParam
();
requestParam
.
setReqDate
(
reqDate
);
requestParam
.
setReqSeqId
(
setReqSeqId
);
requestParam
.
setHuifuId
(
"6666000109133323"
);
//TODO 配置
requestParam
.
setGoodsDesc
(
goodsDesc
);
requestParam
.
setTradeType
(
tradeType
);
requestParam
.
setTransAmt
(
totalAmt
.
toString
());
requestParam
.
setTimeExpire
(
"20250718235959"
);
//TODO 在计算
requestParam
.
setNotifyUrl
(
"http://www.baidu.com"
);
//TODO 配置
...
...
@@ -75,19 +70,17 @@ public class GoblinDougongPayServiceImplTest {
wxDataGoodsDetails
.
add
(
wxDataGoodsDetail
);
}
DougongRequestParam
.
WxDataDetail
wxDataDetail
=
new
DougongRequestParam
.
WxDataDetail
();
wxDataDetail
.
setCostPrice
(
totalAmt
.
toString
());
wxDataDetail
.
setGoodsDetail
(
wxDataGoodsDetails
);
DougongRequestParam
.
WxData
wxData
=
new
DougongRequestParam
.
WxData
();
wxData
.
setSubAppid
(
"wxdfe9a5d141f96685"
);
//TODO 配置
wxData
.
setSubOpenid
(
"o8jhotzittQSetZ-N0Yj4Hz91Rqc"
);
//TODO 前端带过来
wxData
.
setBody
(
goodsDesc
);
wxData
.
setDetail
(
wxDataDetail
);
requestParam
.
setWxData
(
JsonUtils
.
toJson
(
wxData
));
System
.
out
.
println
(
goblinDougongPayService
.
jsPay
(
requestParam
));
DougongJsPayData
dougongJsPayData
=
new
DougongJsPayData
();
dougongJsPayData
.
setReqDate
(
reqDate
);
dougongJsPayData
.
setReqSeqId
(
IDGenerator
.
nextSnowId
());
dougongJsPayData
.
setGoodsDesc
(
goodsDesc
);
dougongJsPayData
.
setTradeType
(
tradeType
);
dougongJsPayData
.
setTransAmt
(
totalAmt
.
toString
());
dougongJsPayData
.
setTimeExpire
(
"20250718235959"
);
//TODO 在计算
dougongJsPayData
.
setSubOpenid
(
"o8jhotzittQSetZ-N0Yj4Hz91Rqc"
);
//TODO 前端带过来
dougongJsPayData
.
setGoodsDetailList
(
wxDataGoodsDetails
);
System
.
out
.
println
(
goblinDougongPayService
.
jsPay
(
dougongJsPayData
));
}
}
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