package com.xzx.gc.pay.controller;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.date.DateField;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.lang.Validator;
|
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.alipay.api.AlipayApiException;
|
import com.alipay.api.AlipayClient;
|
import com.alipay.api.DefaultAlipayClient;
|
import com.alipay.api.request.AlipayOpenOperationOpenbizmockBizQueryRequest;
|
import com.alipay.api.response.AlipayOpenOperationOpenbizmockBizQueryResponse;
|
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
|
import com.github.binarywang.wxpay.exception.WxPayException;
|
import com.github.binarywang.wxpay.service.WxPayService;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.xzx.gc.common.Result;
|
import com.xzx.gc.common.annotations.PassToken;
|
import com.xzx.gc.common.constant.CommonEnum;
|
import com.xzx.gc.common.constant.Constants;
|
import com.xzx.gc.common.constant.PayEnum;
|
import com.xzx.gc.common.constant.SysConfigConstant;
|
import com.xzx.gc.common.dto.CommonDto;
|
import com.xzx.gc.common.dto.SimplePage;
|
import com.xzx.gc.common.dto.log.OperationAppLog;
|
import com.xzx.gc.common.exception.RestException;
|
import com.xzx.gc.common.request.BaseController;
|
import com.xzx.gc.common.utils.*;
|
import com.xzx.gc.common.utils.ali.SmsUtil;
|
import com.xzx.gc.entity.*;
|
import com.xzx.gc.model.JsonResult;
|
import com.xzx.gc.model.admin.MoneyModel;
|
import com.xzx.gc.model.admin.UserAccountModel;
|
import com.xzx.gc.model.admin.UserModel;
|
import com.xzx.gc.model.pay.*;
|
import com.xzx.gc.pay.config.WxPayProperties;
|
import com.xzx.gc.pay.dto.*;
|
import com.xzx.gc.pay.mapper.AccountMapper;
|
import com.xzx.gc.pay.mapper.OtherUserMapper;
|
import com.xzx.gc.pay.mapper.PayRequestMapper;
|
import com.xzx.gc.pay.mapper.UserMapper;
|
import com.xzx.gc.pay.service.*;
|
import com.xzx.gc.util.pay.util.entity.TransfersDtoAdmin;
|
import io.swagger.annotations.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author:andylei
|
* @title
|
* @Description
|
* @date 2019/9/1
|
* @修改历史
|
*/
|
@Api(tags = "支付管理")
|
@RestController
|
@Slf4j
|
public class PayController extends BaseController {
|
@Autowired
|
private PayService payService;
|
|
|
@Autowired
|
private BusinessUtil businessUtil;
|
|
|
@Autowired
|
private WxPayService wxPayService;
|
|
|
@Autowired
|
private PayRequestMapper payRequestMapper;
|
|
@Autowired
|
private IdUtils idUtils;
|
|
@Value("${anroidAppId}")
|
private String anroidAppId;
|
|
@Autowired
|
private WxPayProperties properties;
|
|
@Autowired
|
private PayRequestService payRequestService;
|
|
@Autowired
|
private ConfigService configService;
|
|
|
@Autowired
|
private WeiXinService weiXinService;
|
|
@Autowired
|
private OtherUserMapper otherUserMapper;
|
|
@Autowired
|
private UserMapper userMapper;
|
|
@Autowired
|
private AccountMapper accountMapper;
|
|
@Autowired
|
private AccountService accountService;
|
|
@Autowired
|
private MqUtil mqUtil;
|
|
@Autowired
|
private UserService userService;
|
|
|
|
@Value("${wx.app.url}")
|
String TRANS_URL;
|
@Value("${wx.app.key}")
|
String APP_KEY;
|
@Value("${wx.path}")
|
String CERT_PATH;
|
@Value("${wx.pay.appid}")
|
String APP_ID;
|
@Value("${wx.mchid}")
|
String MCH_ID;
|
@Value("${wx.name}")
|
String MCH_NAME;
|
@Value("${wx.create.ip}")
|
String CREATE_IP;
|
|
|
/**
|
* 支付信息录入
|
* @param payInfoReq
|
*/
|
@ApiOperation( value = "提现申请")
|
@PostMapping("/pay/add")
|
public Result<CommonDto> PayInfoAdd(HttpServletRequest request,@RequestBody PayInfoReq payInfoReq) {
|
Result result = new Result();
|
BigDecimal bigDecimal = Convert.toBigDecimal(payInfoReq.getMoney(),Constants.MONEY_INIT);
|
if(bigDecimal.compareTo(BigDecimal.ZERO)==0){
|
result.setCode(-1);
|
result.setMsg("提现金额必须大于0");
|
return result;
|
}
|
payInfoReq.setMoney(Convert.toStr(bigDecimal));
|
payInfoReq.setVersion(getVersion(request));
|
CommonDto commonDto = payService.PayInfoAdd(payInfoReq);
|
result.setData(commonDto);
|
|
String mobilePhone = userService.findOtherByUserId(getUserId(request),0);
|
OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone)
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("提现申请-"+commonDto.getId()).build();
|
mqUtil.sendApp(build);
|
|
return result;
|
}
|
|
@ApiOperation( value = "提现自动审核")
|
@PostMapping("/pay/audit")
|
public Result<String> audit(HttpServletRequest request,@Validated @RequestBody CommonDto commonDto) {
|
Result result = new Result();
|
// Validator.validateNotEmpty(commonDto.getId(),"支付ID不能为空");
|
// int code=payService.audit(commonDto);
|
// if(code==-1){
|
// result.setCode(code);
|
// result.setMsg("提现审核失败");
|
// }
|
return result;
|
}
|
|
|
@ApiOperation( value = "查询最近的一次提现方式")
|
@PostMapping("/pay/findPayMethod")
|
public Result<AccountBindInfo> findPayMethod(HttpServletRequest request) {
|
Result result = new Result();
|
String userId = getUserId(request);
|
AccountBindInfo accountBindInfo=payService.findPayMethod(userId);
|
result.setData(accountBindInfo);
|
return result;
|
}
|
|
|
/**
|
* 支付信息查询
|
* @param payInfoReq
|
*/
|
@ApiOperation( value = "支付详情")
|
@PostMapping("/pay/query")
|
public Result<List<PayInfoVo>> queryPayInfo(HttpServletRequest request,@RequestBody PayInfoReq payInfoReq) {
|
Result result = new Result();
|
String userId=getUserId(request);
|
List<PayInfoVo> list = payService.queryPayInfo(payInfoReq);
|
if(CollUtil.isEmpty(list)){
|
//提现信息
|
list=payService.queryPayRequestInfo(payInfoReq);
|
}
|
result.setData(list);
|
return result;
|
}
|
|
|
@ApiOperation(value = "充值")
|
@PostMapping("/pay/new/recharge")
|
public Result<PayResultDTO> order(@Validated @RequestBody PayParamDTO payParamDTO, HttpServletRequest req) {
|
|
if(CommonEnum.JSAPI.getValue().equals(payParamDTO.getTradeType())){
|
Validator.validateNotEmpty(payParamDTO.getOpenid(),"openid不能为空");
|
}
|
payParamDTO.setNonceStr(RandomUtil.randomString(32));
|
payParamDTO.setOutTradeNo(idUtils.generate("ZF",0));
|
payParamDTO.setSpbillCreateIp(IpUtils.getIpAddr(req));
|
Date date = new Date();
|
payParamDTO.setTimeStart(DateUtil.format(date,"yyyyMMddHHmmss"));
|
payParamDTO.setTimeExpire(DateUtil.offset(date,DateField.HOUR_OF_DAY,2).toString("yyyyMMddHHmmss"));
|
WxPayUnifiedOrderRequest request=new WxPayUnifiedOrderRequest();
|
|
if(businessUtil.isApp(getClientType(req))){
|
wxPayService.getConfig().setAppId(anroidAppId);
|
}else{
|
wxPayService.getConfig().setAppId(properties.getAppId());
|
}
|
|
BeanUtils.copyProperties(payParamDTO,request);
|
BigDecimal totalFee=BigDecimal.ZERO;
|
if(SpringUtil.isDev()||SpringUtil.isTest()||SpringUtil.isCheck()){
|
totalFee=NumberUtil.mul(payParamDTO.getTotalFee(),new BigDecimal("1"));
|
}else{
|
totalFee=NumberUtil.mul(payParamDTO.getTotalFee(),new BigDecimal("100"));
|
}
|
request.setTotalFee(totalFee.intValue());
|
|
payParamDTO.setClientType(getClientType(req));
|
|
Result<PayResultDTO> result = weiXinService.pay(request, payParamDTO);
|
|
if(result.getCode()==0){
|
String mobilePhone = userService.findOtherByUserId(getUserId(req),0);
|
OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(req)).opreateName(mobilePhone)
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("充值-"+result.getData().getPayOrderId()).build();
|
mqUtil.sendApp(build);
|
|
}
|
return result;
|
}
|
|
|
|
@ApiOperation(value = "微信充值回调",hidden = true)
|
@PostMapping("/pay/new/wxProPayNotify/anon")
|
@PassToken
|
public String payNotify(@RequestBody String xmlResult) {
|
log.info("*************微信开始回调******************");
|
return weiXinService.payBack(xmlResult);
|
}
|
|
|
@ApiOperation(value = "微信充值修复",notes = "id:ZF支付ID")
|
@PostMapping(Constants.ADMIN_VIEW_PREFIX+"/pay/fix")
|
public Result payFix(@RequestBody CommonDto commonDto,HttpServletRequest request) throws WxPayException {
|
String payOrderId=commonDto.getId();
|
WxPayOrderQueryResult wxPayOrderQueryResult = wxPayService.queryOrder(null, payOrderId);
|
String returnCode = wxPayOrderQueryResult.getReturnCode();
|
String resultCode = wxPayOrderQueryResult.getResultCode();
|
if("SUCCESS".equals(returnCode)&&"SUCCESS".equals(resultCode)){
|
//SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败)
|
String tradeState = wxPayOrderQueryResult.getTradeState();
|
log.trace("充值交易流水号:{},交易状态:{}",payOrderId,tradeState);
|
if("SUCCESS".equals(tradeState)) {
|
Result result = weiXinService.payFix(payOrderId);
|
|
if(result.getCode()==0) {
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("微信充值修复-" + payOrderId).build();
|
mqUtil.sendApp(build);
|
}
|
return result;
|
}
|
}
|
return Result.error("修复失败");
|
|
}
|
|
@ApiOperation(value = "额度申请")
|
@PostMapping("/pay/new/limit/add")
|
public Result limitAdd(HttpServletRequest request,@RequestBody CommonDto commonDto){
|
PayRequestInfo info=new PayRequestInfo();
|
info.setCreateUserId(getUserId(request));
|
info.setPayType(PayEnum.额度申请.getValue());
|
info.setStatus(PayEnum.待审核.getValue());
|
List<PayRequestInfo> select = payRequestMapper.select(info);
|
if(CollUtil.isNotEmpty(select)){
|
return Result.error(-1,"正在审核中,不能重复申请");
|
}
|
Result result=new Result();
|
String extra = commonDto.getExtra();
|
Validator.validateNotEmpty(extra,"透支金额不能为空");
|
PayRequestInfo payRequestInfo=new PayRequestInfo();
|
payRequestInfo.setCreateUserId(getUserId(request));
|
payRequestInfo.setMoney(extra);
|
payRequestInfo.setPayType(PayEnum.额度申请.getValue());
|
payRequestService.add(payRequestInfo);
|
|
|
String mobilePhone = userService.findOtherByUserId(getUserId(request),0);
|
OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone)
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("额度申请-"+payRequestInfo.getPayOrderId()).build();
|
mqUtil.sendApp(build);
|
|
|
return result;
|
}
|
|
|
@ApiOperation(value = "修改支付状态")
|
@PostMapping("/pay/new/updateStatus")
|
public Result updateStatus(HttpServletRequest request,@RequestBody PayUpdateStatusDto payUpdateStatusDto){
|
payService.updateStatus(payUpdateStatusDto.getPayOrderId(),payUpdateStatusDto.getStatus());
|
|
String mobilePhone = userService.findOtherByUserId(getUserId(request),0);
|
OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone)
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("修改支付状态-"+payUpdateStatusDto.getPayOrderId()).build();
|
mqUtil.sendApp(build);
|
|
|
return Result.success("");
|
}
|
|
|
@ApiOperation(value = "查询充值服务费")
|
@PostMapping("/pay/new/findFee")
|
public Result<PayFeeDto> order(@Validated @RequestBody PayFeeParamDto payFeeParamDto, HttpServletRequest request) {
|
PayFeeDto payFeeDto=new PayFeeDto();
|
//查询当前用户本周内是否有成功或者在支付中的充值记录
|
// List<PayInfo> forWeekByUserIdAndType = payService.findForWeekByUserIdAndType(getUserId(request), PayEnum.充值.getValue());
|
//需要支付服务费
|
List<ConfigInfo> moneyFee = configService.findByGroup("MONEY_FEE");
|
//费率
|
String feeRate = moneyFee.stream().filter(x -> x.getConfigTypeCode().equals("PAY_FEE_RATE")).collect(Collectors.toList()).get(0).getConfigValue();
|
//最小服务费
|
String feeSmall = moneyFee.stream().filter(x -> x.getConfigTypeCode().equals("PAY_FEE_SMALL")).collect(Collectors.toList()).get(0).getConfigValue();
|
|
String money = payFeeParamDto.getMoney();
|
//服务费
|
BigDecimal mul = NumberUtil.mul(Convert.toBigDecimal(money),Convert.toBigDecimal(feeRate));
|
payFeeDto.setSmallFee(businessUtil.changeMoney(feeSmall));
|
|
BigDecimal mulRate = NumberUtil.mul(Convert.toBigDecimal(feeRate), 100);
|
payFeeDto.setFeeRate(businessUtil.changeMoney(Convert.toStr(mulRate))+"%");
|
|
|
// if(CollUtil.isNotEmpty(forWeekByUserIdAndType)){
|
if(StrUtil.isNotBlank(feeRate)&&Convert.toBigDecimal(feeRate,BigDecimal.ZERO).compareTo(BigDecimal.ZERO)!=0){
|
if(mul.compareTo(Convert.toBigDecimal(feeSmall))<0){
|
payFeeDto.setFee(businessUtil.changeMoney(feeSmall));
|
}else {
|
payFeeDto.setFee(businessUtil.changeMoney(Convert.toStr(mul)));
|
}
|
|
}
|
// }
|
|
return Result.success(payFeeDto);
|
}
|
|
|
@PostMapping( "/admin/front/wx/pay/wxPay.do")
|
@ApiOperation(value = "微信提现接口", notes = "test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "query", name = "userId", value = "用户Id", required = true, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "payOrderId", value = "提现申请订单Id", required = true, dataType = "String"),
|
@ApiImplicitParam(paramType = "query", name = "otherUserId", value = "非普通用户Id", required = true, dataType = "String")
|
})
|
public JsonResult<String> wxPay(@RequestBody TransfersDtoAdmin dto) {
|
payService.wxPay(dto);
|
return JsonResult.success();
|
}
|
|
|
|
@PostMapping( "/admin/front/wx/pay/queryPayInfoDetail.json")
|
public Map<String, Object> queryPayInfoDetail(String payOrderId){
|
return payService.queryPayInfoDetail(payOrderId);
|
}
|
|
// 回收员类别页面
|
@GetMapping(Constants.ADMIN_VIEW_PREFIX + "/wx/pay/queryPayInfo.do")
|
public ModelAndView queryPayInfo(String payOrderId) {
|
ModelAndView view = new ModelAndView("/admin/money/payInfoDetail.html");
|
view.addObject("payOrderId", payOrderId);
|
return view;
|
}
|
|
/**
|
* 更新
|
* @param payOrderId
|
* @param userId
|
* @param unpassReason
|
* @return
|
*/
|
@PostMapping( "/admin/front/wx/pay/addReason.json")
|
public int addReason(String payOrderId,String userId,String unpassReason){
|
|
return payRequestMapper.addReason(payOrderId,userId,unpassReason);
|
}
|
|
|
@PostMapping( "/admin/front/wx/pay/quotaList.json")
|
public Map<String, Object> quotaList(MoneyModel moneyModel,String page,String limit){
|
moneyModel.setPayType("7");
|
return payRequestService.queryMoneyList(moneyModel,page,limit);
|
}
|
|
@PostMapping( "/admin/front/wx/pay/quota.json")
|
public JsonResult<String> quota(TransfersDtoAdmin dto) {
|
Map<String, Object> result = new HashMap<>();
|
MoneyModel moneyModel = new MoneyModel();
|
moneyModel.setPayOrderId(dto.getPayOrderId());
|
moneyModel = payRequestMapper.queryMoney(moneyModel);
|
//
|
UserModel userModel = otherUserMapper.queryRecoveryById(dto.getUserId(),"2");
|
if(null!=userModel){
|
UserAccountModel userAccountModel = accountMapper.queryAccountInfo(moneyModel.getCreateUserId(), userModel.getMobilePhone());
|
if (userAccountModel == null) {
|
return JsonResult.success("此用户未查询到账户信息");
|
}else{
|
accountService.updateOverdrawPriceByUserId(userAccountModel.getAccountId(),moneyModel.getMoney());
|
//修改申请状态
|
moneyModel.setStatus("2");
|
moneyModel.setUnpassReason("审核通过");
|
payRequestMapper.updateMoney(moneyModel);
|
return JsonResult.success("完成审核");
|
}
|
}else{
|
return JsonResult.success("查不到对应的回收员");
|
}
|
}
|
|
@PostMapping( "/admin/front/wx/pay/wxPayCancel.json")
|
@ApiOperation(value="资金管理-提现申请(拒绝)", notes="test: 仅0有正确返回")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType="query", name = "payOrderId", value = "提现申请Id", required = true, dataType = "String"),
|
@ApiImplicitParam(paramType="query", name = "userId", value = "用户Id", required = true, dataType = "String"),
|
@ApiImplicitParam(paramType="query", name = "unpassReason", value = "未通过原因", required = true, dataType = "String")
|
|
})
|
public JsonResult<String> wxPayCancel(@RequestBody TransfersDtoAdmin dto,HttpServletRequest request) {
|
Map<String, Object> result = new HashMap<>();
|
MoneyModel moneyModel = new MoneyModel();
|
moneyModel.setPayOrderId(dto.getPayOrderId());
|
moneyModel = payRequestMapper.queryMoney(moneyModel);
|
moneyModel.setStatus("3");
|
moneyModel.setUnpassReason(dto.getUnpassReason());
|
// functionConsoleService.updateMoney(moneyModel);
|
|
OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("提现申请(拒绝)-"+dto.getPayOrderId()).build();
|
mqUtil.sendApp(build);
|
|
|
return JsonResult.success("完成审核");
|
}
|
|
@ApiOperation(value = "线下充值申请")
|
@PostMapping("/pay/offline")
|
public Result offline(@RequestBody PayOfflineDTO payOfflineDTO, HttpServletRequest req) {
|
PayInfo payInfo=new PayInfo();
|
String userId=getUserId(req);
|
List<String> resourceUrlList = payOfflineDTO.getResourceUrlList();
|
String zf = idUtils.generate("ZF", 0);
|
payInfo.setPayOrderId(zf);
|
if (CollUtil.isNotEmpty(resourceUrlList)) {
|
payInfo.setPayImg(CollUtil.join(resourceUrlList,","));
|
}
|
payInfo.setCreateUserId(userId);
|
payInfo.setMoney(payOfflineDTO.getMoney());
|
Map<String,String> map=new HashMap<>();
|
AccountInfo byUserId = accountService.findByUserIdForbidden(userId);
|
if(byUserId!=null){
|
payInfo.setAccountId(byUserId.getAccountId());
|
map.put("account",byUserId.getAccountName());
|
}
|
payInfo.setPayType(PayEnum.充值.getValue());
|
payInfo.setPaySecondType(Convert.toByte(PayEnum.线下充值.getValue()));
|
payInfo.setStatus(PayEnum.待审核中.getValue());
|
payInfo.setPayTime(DateUtil.now());
|
payService.addPay(payInfo);
|
|
String phone=configService.findByCode(SysConfigConstant.PAT_AUDIT_PHONE).getConfigValue();
|
map.put("money",payOfflineDTO.getMoney());
|
|
//发送审核短信
|
String content = StrUtil.format("账号{account}提交一笔充值{money}元的申请,请尽快审核", map);
|
String[] strings = StrUtil.splitToArray(phone, Convert.toChar(","));
|
for (String string : strings) {
|
SmsUtil.sendPoint(string, content);
|
}
|
|
|
String mobilePhone = userService.findOtherByUserId(getUserId(req),0);
|
OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(req)).opreateName(mobilePhone)
|
.methodName(Constants.PAY_MODUL_NAME).operateAction("线下充值申请-"+payInfo.getPayOrderId()).build();
|
mqUtil.sendApp(build);
|
|
return Result.success();
|
}
|
|
@ApiOperation(value = "分页查询线下充值记录")
|
@PostMapping("/pay/offlineList")
|
public Result<PageInfo<PayInfo>> offlineList(@RequestBody SimplePage simplePage, HttpServletRequest req) {
|
PageInfo<PayInfo> pageInfo = payService.findPageByUserIdAndSecondType(simplePage,getUserId(req), PayEnum.充值.getValue(), PayEnum.线下充值.getValue());
|
return Result.success(pageInfo);
|
}
|
|
|
@ApiOperation(value = "支付宝支付")
|
@PostMapping("/pay/ali")
|
@PassToken
|
public Result<String> aliPay(@RequestBody AliPayDTO aliPayDTO, HttpServletRequest req) throws AlipayApiException {
|
String res=payService.aliPay(aliPayDTO);
|
return Result.success(res);
|
}
|
|
@ApiOperation(value = "支付宝支付回调")
|
@PostMapping("/pay/ali/notify")
|
@PassToken
|
public Result<String> aliPayNotify(HttpServletRequest request) throws AlipayApiException {
|
Map<String,String> params = new HashMap<String,String>();
|
Map requestParams = request.getParameterMap();
|
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
|
String name = (String) iter.next();
|
String[] values = (String[]) requestParams.get(name);
|
String valueStr = "";
|
for (int i = 0; i < values.length; i++) {
|
valueStr = (i == values.length - 1) ? valueStr + values[i]
|
: valueStr + values[i] + ",";
|
}
|
//乱码解决,这段代码在出现乱码时使用。
|
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
|
params.put(name, valueStr);
|
}
|
String res=payService.aliPayNotify(params);
|
return Result.success(res);
|
}
|
|
|
|
}
|