提交 a103b8ca authored 作者: 胡宁宁's avatar 胡宁宁

增加司机保证金冻结支付接口

上级 7e776aea
package com.clx.performance.enums.payment;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
public enum PayOperationStatusEnum {
FREEZE(1, "冻结"),
ADJUSTMENT(2, "调整"),
UNFREEZE(3, "解冻"),
PART_UNFREEZE(4, "部分解冻"),
PART_PAY(5, "部分支付"),
PAY(6, "支付"),
COMPLETE(7, "完成")
;
private static Map<Integer, String> map = new ConcurrentHashMap<>();
static {
for(PayOperationStatusEnum payOperationStatusEnum : PayOperationStatusEnum.values()){
map.put(payOperationStatusEnum.getValue(), payOperationStatusEnum.getDisplayValue());
}
}
private int value;
private String displayValue;
public void setValue(int value) {
this.value = value;
}
public String getDisplayValue() {
return displayValue;
}
public void setDisplayValue(String displayValue) {
this.displayValue = displayValue;
}
private PayOperationStatusEnum(int value, String displayValue){
this.value = value;
this.displayValue = displayValue;
}
public int getValue(){
return value;
}
public static String toString(int value){
return map.get(value);
}
}
package com.clx.performance.enums.payment;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum PaymentActionEnum {
;
/** 操作类型 1撤销 2完成 3修改*/
@Getter
@AllArgsConstructor
public enum Type {
CANCEL(1, "撤销"),
COMPLETE(2, "完成"),
ADJUST(3, "修改"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getMsg).orElse(null);
}
}
}
package com.clx.performance.enums.payment;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
* 支付状态
*/
public enum PaymentStatusEnum {
CREATE(0, "发起"),
SUCCESS(1, "成功"),
FAIL(2, "失败")
;
private static Map<Integer, String> map = new ConcurrentHashMap<>();
static {
for(PaymentStatusEnum paymentStatusEnum : PaymentStatusEnum.values()){
map.put(paymentStatusEnum.getValue(), paymentStatusEnum.getDisplayValue());
}
}
private int value;
private String displayValue;
public void setValue(int value) {
this.value = value;
}
public String getDisplayValue() {
return displayValue;
}
public void setDisplayValue(String displayValue) {
this.displayValue = displayValue;
}
private PaymentStatusEnum(int value, String displayValue){
this.value = value;
this.displayValue = displayValue;
}
public int getValue(){
return value;
}
public static String toString(int value){
return map.get(value);
}
}
package com.clx.performance.param.pc.payment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
*
* @author xujianke
* @date 2017年4月22日
* @description
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class CallServiceDTO {
/** 业务系统编码 参考<SystemCodeEnum> */
Integer system;
/** 支付结果通知回调地址 */
String notifyUrl;
/** 操作唯一标识 UUID */
String uuid;
/** 关联单号 */
String orderNo;
}
package com.clx.performance.param.pc.payment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
*
* @author xujianke
* @date 2017年5月31日
* @description 批量处理冻结
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class FreezeBatchDTO extends CallServiceDTO{
/** 处理冻结 */
private List<FreezeUnitDTO> FreezeUnitList;
/** 增加支付单元的处理,为了在解冻的时候额外增加赔偿 add by cuiwanzhe 20200430 */
private PayBatchDTO payBatchDTO;
}
package com.clx.performance.param.pc.payment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
/**
*
* @author xujianke
* @date 2017年4月18日
* @description 同一个订单的批量支付操作类 不能跨订单支付
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class PayBatchDTO extends CallServiceDTO{
/**支付操作*/
private List<PayUnitDTO> payUnitList;
/**主钱包*/
private Integer walletCode;
/**子钱包*/
private Integer walletSubCode;
/**主钱包的交易密码*/
private String pwd;
}
package com.clx.performance.param.pc.payment;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class PayPlatformFeeParam {
@NotBlank(message = "支付人不能为空")
@ApiModelProperty(value = "支付来源", example = "2234", dataType = "int")
Integer from;
@NotBlank(message = "支付密码不能为空")
@ApiModelProperty(value = "支付方密码", example = "2356", dataType = "String")
String pwd;
@NotBlank(message = "金额不能为空")
@ApiModelProperty(value = "金额", example = "2356", dataType = "int")
Integer figure;
@NotBlank(message = "交易单号不能为空")
@ApiModelProperty(value = "交易单号", example = "2356", dataType = "String")
String tradeNo;
}
...@@ -17,4 +17,6 @@ public class MslPaymentConfig { ...@@ -17,4 +17,6 @@ public class MslPaymentConfig {
private String notifyhost; private String notifyhost;
@Value("${msl.payment.transport.walletCode}") @Value("${msl.payment.transport.walletCode}")
private Integer transportWalletCode; private Integer transportWalletCode;
@Value("${msl.payment.system.walletCode}")
private Integer systemWalletCode;
} }
package com.clx.performance.controller.payment; package com.clx.performance.controller.payment;
import com.clx.performance.enums.PayUnitTypeEnum;
import com.clx.performance.enums.payment.PayOperationStatusEnum;
import com.clx.performance.enums.payment.PaymentStatusEnum;
import com.clx.performance.model.payment.OrderPayment;
import com.clx.performance.param.pay.NotifyString; import com.clx.performance.param.pay.NotifyString;
import com.clx.performance.service.PaymentService;
import com.clx.performance.service.breakcontract.BreakContractMqHandlerService; import com.clx.performance.service.breakcontract.BreakContractMqHandlerService;
import com.clx.performance.service.settle.SettlementMqHandlerService; import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -27,6 +32,12 @@ public class PayNotifyController { ...@@ -27,6 +32,12 @@ public class PayNotifyController {
@Autowired @Autowired
private BreakContractMqHandlerService breakContractMqHandlerService; private BreakContractMqHandlerService breakContractMqHandlerService;
@Autowired
private PaymentService paymentService;
@ApiOperation(value = "用户支付完成回调接口", notes = " <br>By:胡宁宁") @ApiOperation(value = "用户支付完成回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayNotify", method = RequestMethod.POST) @RequestMapping(value = "/userPayNotify", method = RequestMethod.POST)
public Result<Object> userPayNotify(@RequestBody NotifyString notify) { public Result<Object> userPayNotify(@RequestBody NotifyString notify) {
...@@ -70,4 +81,114 @@ public class PayNotifyController { ...@@ -70,4 +81,114 @@ public class PayNotifyController {
Result<Object> ret = new Result<>(); Result<Object> ret = new Result<>();
return ret; return ret;
} }
@ApiOperation(value = "司机冻结保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机冻结保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.FREEZE.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
@ApiOperation(value = "司机调整保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayAdjustDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayAdjustDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机冻结保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.ADJUSTMENT.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
@ApiOperation(value = "司机取消运单退还保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayCancelDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayCancelDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机冻结保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.UNFREEZE.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
@ApiOperation(value = "运单完成 保证金回调接口", notes = " <br>By:胡宁宁")
@RequestMapping(value = "/userPayCompleteDriverFreezeNotify", method = RequestMethod.POST)
public Result<Object> userPayCompleteDriverFreezeNotify(@RequestBody NotifyString notify) {
log.info("司机冻结保证金回调接口 传参 {}", notify);
if (Objects.isNull(notify) || Objects.isNull(notify.getCode()) || Objects.isNull(notify.getAction())) {
return new Result<>();
}
String paymentItem = PayUnitTypeEnum.FREEZE_PLATFORM_FEE.getCode()+"";
int operation = PayOperationStatusEnum.UNFREEZE.getValue();
if (notify.getCode() != 0) {
paymentService.updateOrderPaymentFail(notify.getOrderNo(), notify.getMsg(),
operation,
paymentItem
);
// 支付失败处理
log.info("支付失败处理 唯一id {}", notify.getOrderNo());
} else {
paymentService.updateOrderPaymentSuccess(notify.getOrderNo(), operation,
paymentItem);
// 支付支付成功处理
log.info(" 支付支付成功处理 唯一id {}", notify.getOrderNo());
}
Result<Object> ret = new Result<>();
return ret;
}
} }
...@@ -13,8 +13,11 @@ import lombok.extern.slf4j.Slf4j; ...@@ -13,8 +13,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
...@@ -51,6 +54,17 @@ public class TempController { ...@@ -51,6 +54,17 @@ public class TempController {
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "测试支付划账 (临时接口)", notes = "<br>By:胡宁宁")
@RequestMapping(value = "/paymentTest", method = RequestMethod.GET)
public Result<Void> paymentTest(@RequestParam("fromUser") @NotBlank(message = "扣款方") String fromUser,
@RequestParam("toUser") @NotBlank(message = "收款方") String toUser,
@RequestParam("figure") @NotBlank(message = "金额") String figure) {
tempService.paymentTest(fromUser,toUser,figure);
return Result.ok();
}
// @ApiOperation(value = "更新网运标识", notes = "<br>By:艾庆国") // @ApiOperation(value = "更新网运标识", notes = "<br>By:艾庆国")
// @RequestMapping(value = "/updateInvoiceType", method = RequestMethod.POST) // @RequestMapping(value = "/updateInvoiceType", method = RequestMethod.POST)
// public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) { // public Result<Void> updateInvoiceType(String childNo, Integer invoiceType) {
......
package com.clx.performance.dao.impl.payment;
import com.clx.performance.dao.payment.OrderPaymentDao;
import com.clx.performance.mapper.payment.OrderPaymentMapper;
import com.clx.performance.model.IntegralStatistics;
import com.clx.performance.model.payment.OrderPayment;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
@Repository
public class OrderPaymentDaoImpl extends BaseDaoImpl<OrderPaymentMapper, OrderPayment, Integer> implements OrderPaymentDao {
@Override
public Optional<OrderPayment> selectByOrderNoAndItemId(String orderNo, String paymentItem) {
return Optional.of(orderNo)
.map(item -> lQrWrapper()
.eq(OrderPayment::getOrderNo, item)
.eq(OrderPayment::getPaymentItem, paymentItem)
)
.map(super::getOne);
}
@Override
public Optional<OrderPayment> selectByRelationNo(String relationNo, Integer operation, String paymentItem) {
return Optional.of(relationNo)
.map(item -> lQrWrapper()
.eq(OrderPayment::getRelationNo, item)
.eq(OrderPayment::getOperation, operation)
.eq(OrderPayment::getPaymentItem, paymentItem)
)
.map(super::getOne);
}
}
package com.clx.performance.dao.payment;
import com.clx.performance.mapper.payment.OrderPaymentMapper;
import com.clx.performance.model.payment.OrderPayment;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
public interface OrderPaymentDao extends BaseDao<OrderPaymentMapper, OrderPayment, Integer> {
Optional<OrderPayment> selectByOrderNoAndItemId(@Param("orderNo")String orderNo,
@Param("paymentItem")String paymentItem);
Optional<OrderPayment> selectByRelationNo(@Param("relationNo")String relationNo,
@Param("operation")Integer operation,
@Param("paymentItem")String paymentItem);
}
...@@ -7,7 +7,14 @@ import lombok.Getter; ...@@ -7,7 +7,14 @@ import lombok.Getter;
@AllArgsConstructor @AllArgsConstructor
public enum HttpEnum { public enum HttpEnum {
PERFORMANCE_PAY_CLX_PAYMENT(10000, "履约服务向老马上来发起钱包转账","/payment-service/performance/payUserWalletTransfer"), PERFORMANCE_PAY_CLX_PAYMENT(10000, "履约服务向老马上来发起钱包转账",
"/payment-service/performance/payUserWalletTransfer"),
PERFORMANCE_PAY_CLX_DRIVER_FREEZE(10000, "履约服务向老马上来发起司机押金冻结",
"/payment-service/performance/freezeUserMQ"),
PERFORMANCE_PAY_CLX_ADJUST_DRIVER_FREEZE(10000, "履约服务向老马上来发起司机押金冻结调整",
"/payment-service/performance/completeFreezeBatchMQ"),
; ;
private final int code; private final int code;
......
...@@ -26,6 +26,7 @@ public enum PayRemarkEnum { ...@@ -26,6 +26,7 @@ public enum PayRemarkEnum {
//v78 解冻保险 //v78 解冻保险
OWNER_PAY_DRIVER_INSURANCE(15, "货主取消订单赔偿金"), OWNER_PAY_DRIVER_INSURANCE(15, "货主取消订单赔偿金"),
DRIVER_PAY_OWNER_DRIVER_INSURANCE(16, "司机取消订单赔偿金"), DRIVER_PAY_OWNER_DRIVER_INSURANCE(16, "司机取消订单赔偿金"),
UPDATE_DRIVER_FREEZE(17, "修正司机押金"),
; ;
......
package com.clx.performance.mapper.payment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.payment.OrderPayment;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
public interface OrderPaymentMapper extends BaseMapper<OrderPayment> {
}
package com.clx.performance.model.payment;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* @author huningning
* Date 2024-06-18
* Time 14:01
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("order_payment")
public class OrderPayment implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("order_no")
@ApiModelProperty("主订单号")
private String orderNo;
@TableField("relation_no")
@ApiModelProperty("业务关联单号")
private String relationNo;
@TableField("payment_item")
@ApiModelProperty("交易名目")
private String paymentItem;
@TableField("serial_no")
@ApiModelProperty("流水号")
private String serialNo;
@TableField("amount")
@ApiModelProperty("金额")
private Integer amount;
@TableField("operation")
@ApiModelProperty("1:冻结 2:调整 3:解冻 4:部分解冻 5:部分支付 6:支付")
private Integer operation;
@TableField("status")
@ApiModelProperty("0: 发起,1: 成功,2:失败")
private Integer status;
@TableField("reason")
@ApiModelProperty("")
private String reason;
@TableField("create_time")
@ApiModelProperty("")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
...@@ -2,6 +2,7 @@ package com.clx.performance.service; ...@@ -2,6 +2,7 @@ package com.clx.performance.service;
import com.clx.performance.param.pc.payment.PayParam; import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
import com.msl.common.result.Result; import com.msl.common.result.Result;
public interface PaymentService { public interface PaymentService {
...@@ -9,4 +10,16 @@ public interface PaymentService { ...@@ -9,4 +10,16 @@ public interface PaymentService {
Result paymentWallet( PayParam noCheckPwd); Result paymentWallet( PayParam noCheckPwd);
Result paymentBreakContractWallet( PayParam noCheckPwd); Result paymentBreakContractWallet( PayParam noCheckPwd);
Result paymentPlatformFee(PayPlatformFeeParam param);
Result paymentChangePlatformFee(PayPlatformFeeParam param);
Result paymentCompletePlatformFee(PayPlatformFeeParam param);
Result paymentCancelPlatformFee(PayPlatformFeeParam param);
void updateOrderPaymentFail(String orderNo,String msg,Integer operation, String paymentItem);
void updateOrderPaymentSuccess(String orderNo,Integer operation, String paymentItem);
} }
...@@ -5,10 +5,12 @@ import com.clx.performance.enums.BreakContractSettlementDriverEnum; ...@@ -5,10 +5,12 @@ import com.clx.performance.enums.BreakContractSettlementDriverEnum;
import com.clx.performance.enums.PayRemarkEnum; import com.clx.performance.enums.PayRemarkEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.param.pc.payment.PayParam; import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
import com.clx.performance.service.PaymentService; import com.clx.performance.service.PaymentService;
import com.clx.performance.model.breakcontract.BreakContractSettlementDriver; import com.clx.performance.model.breakcontract.BreakContractSettlementDriver;
import com.clx.performance.service.TempService; import com.clx.performance.service.TempService;
import com.clx.performance.service.settle.SettlementService; import com.clx.performance.service.settle.SettlementService;
import com.msl.common.result.Result;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -41,18 +43,24 @@ public class TempServiceImpl implements TempService { ...@@ -41,18 +43,24 @@ public class TempServiceImpl implements TempService {
@Override @Override
public void paymentTest(String fromUser, String toUser, String figure) { public void paymentTest(String fromUser, String toUser, String figure) {
PayParam noCheckPwd = PayParam.builder().from( // PayParam noCheckPwd = PayParam.builder().from(
Integer.valueOf(fromUser)) // Integer.valueOf(fromUser))
.to(Integer.valueOf(toUser)) // .to(Integer.valueOf(toUser))
.figure(Integer.valueOf(figure)) // .figure(Integer.valueOf(figure))
.tradeNo(UUID.randomUUID().toString().replaceAll("-", "")) // .tradeNo(UUID.randomUUID().toString().replaceAll("-", ""))
.tradeId("12345") // .tradeId("12345")
.pwd("noCheckPwd") // .pwd("noCheckPwd")
.remark(PayRemarkEnum.toString(PayRemarkEnum.FREIGHT_TO_OWNER.getValue())) // .remark(PayRemarkEnum.toString(PayRemarkEnum.FREIGHT_TO_OWNER.getValue()))
.build(); // .build();
//
//
paymentService.paymentWallet(noCheckPwd); // paymentService.paymentWallet(noCheckPwd);
PayPlatformFeeParam payPlatformFeeParam = new PayPlatformFeeParam();
payPlatformFeeParam.setFigure(Integer.valueOf(figure));
payPlatformFeeParam.setFrom(Integer.valueOf(fromUser));
payPlatformFeeParam.setPwd(toUser);
payPlatformFeeParam.setTradeNo(UUID.randomUUID().toString().replaceAll("-", ""));
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论