xiaohanzi 5 лет назад
Родитель
Сommit
862bbd8651
3 измененных файлов: 35 добавлений и 74 удалений
  1. +30
    -31
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  2. +1
    -1
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/CPassivePayService.java
  3. +4
    -42
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java

+ 30
- 31
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Просмотреть файл

@@ -863,37 +863,36 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void handleMicroOrderPaySuccess(Object result,String transcationId,EnumPayWay payWay, WxPayOrder record ,WxMerchantBUser user,WxAppinfo appInfo,PayExtraParam params) {
// //B端操作,需要生成cUser
// CreateUser cUser = null;
// try {
// cUser = payServiceFactory.getCPassivePayService(payWay.getCode()).createCUserAfterPay(result, appInfo);
// } catch (Exception e1) {
// logger.error("创建C端用户失败: " ,e1);
// throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "创建C端用户失败: " + e1.getMessage());
// }
// //如果用户是会员,则用会员ID, 如果没有,则用渠道用户ID(如wxCuser,支付宝user)
// Long cUserId = null;
// if (cUser.isBasicInfo()) {
// cUserId = cUser.getBasicUserId();
// }else {
// cUserId = cUser.getCUserId();
// }
//扫码支付的会员固定
WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(1L);
if (null == basicInfo) {
basicInfo = new WxCUserBasicInfo();
basicInfo.setId(1L);
basicInfo.setPhone("11111111111");
basicInfo.setNickName("商场["+record.getTenantId()+"]B端扫C端码支付专用账户");
basicInfo.undateFinalTenantId(record);
basicInfo.setCreateDate(new Date());
int count = wxCUserBasicInfoMapper.insert(basicInfo);
if (count <=0 ) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加会员用户失败");
}
//userCreate = true;
}
CreateUser cUser = null;
try {
cUser = payServiceFactory.getCPassivePayService(payWay.getCode()).getCUserAfterPay(result, appInfo);
} catch (Exception e1) {
logger.error("创建C端用户失败: " ,e1);
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "创建C端用户失败: " + e1.getMessage());
}
//如果用户是会员,则用会员ID, 如果没有,则用渠道用户ID(如wxCuser,支付宝user)
Long basicUserId = null;
if (null != cUser && cUser.isBasicInfo()) {
basicUserId = cUser.getBasicUserId();
}else {
//扫码支付的会员固定
basicUserId = Long.parseLong(record.getTenantId()+"0001");
WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(basicUserId);
if (null == basicInfo) {
basicInfo = new WxCUserBasicInfo();
basicInfo.setId(basicUserId);
basicInfo.setPhone("11111111111");
basicInfo.setNickName("商场["+record.getTenantId()+"]B端扫C端码支付专用账户");
basicInfo.undateFinalTenantId(record);
basicInfo.setCreateDate(new Date());
int count = wxCUserBasicInfoMapper.insert(basicInfo);
if (count <=0 ) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加会员用户失败");
}
}
}
WxPayOrderServiceImpl proxy = (WxPayOrderServiceImpl) AopContext.currentProxy();
WxOrder order = proxy.handler(record,transcationId,basicInfo.getId());
WxOrder order = proxy.handler(record,transcationId,basicUserId);
if (null == order) {
return;
}
@@ -930,7 +929,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
}

// 修改订单状态
order.setCUserId(basicInfo.getId());
order.setCUserId(basicUserId);
try {
int _count = wxOrderService.microPayOrderSuccess(order);
if (_count > 1) {


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/pay/service/pay/CPassivePayService.java Просмотреть файл

@@ -29,6 +29,6 @@ public interface CPassivePayService extends PayAdapterService{
* @param params
* @throws Exception
*/
public CreateUser createCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception;
public CreateUser getCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception;

}

+ 4
- 42
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/miniApp/maPay/WxMiniMaPayAdapterService.java Просмотреть файл

@@ -208,58 +208,20 @@ public class WxMiniMaPayAdapterService extends BaseWxPayAdapterService implement
WxMallMapper wxMallMapper;
@Override
public CreateUser createCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception {
public CreateUser getCUserAfterPay(Object result,WxAppinfo appInfo) throws Exception {
// add c_user, 收银台支付和券支付可能不是同一个人
Date curDate = new Date();
WxCUser userQ = new WxCUser();
Map<String, String> returnMap = (Map<String, String>) result;
String openId = returnMap.get("sub_openid");
String isSubscribe = returnMap.get("sub_is_subscribe");
//String isSubscribe = returnMap.get("sub_is_subscribe");
userQ.setOpenId(openId);
userQ.setAppId(appInfo.getAppId());
WxMall mall = wxMallMapper.getByTenantId(appInfo.getTenantId());
WxCUser user1 = wxCUserMapper.findByOpenId(userQ);
// boolean userCreate = false;
final IdWorker idWorker = IdWorker.get();
Long userId = idWorker.nextId();
if (user1 == null) {
user1 = new WxCUser();
user1.setAppId(appInfo.getAppId());
user1.setOpenId(openId);
user1.setTenantId(appInfo.getTenantId());
user1.setParentTenantId(mall.getParentTenantId());
int count = wxCUserService.saveOrUpdate(user1);
if (count <=0 ) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加微信C端用户失败");
}
return null;
}else {
if (user1.basicInfoIs()) {
userId = user1.getUserId();
}
return new CreateUser(user1.getId(),user1.getUserId());
}
WxCUserBasicInfo basicInfo = wxCUserBasicInfoMapper.selectById(userId);
if (null == basicInfo) {
basicInfo = new WxCUserBasicInfo();
basicInfo.setId(userId);
basicInfo.setPhone(openId);
basicInfo.setNickName("微信扫码支付非会员用户");
basicInfo.undateFinalTenantId(new TenantEntity() {{
setTenantId(mall.getTenantId());
setParentTenantId(mall.getParentTenantId());
}});
basicInfo.setCreateDate(new Date());
int count = wxCUserBasicInfoMapper.insert(basicInfo);
if (count <=0 ) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "微信扫码支付添加会员用户失败");
}
//userCreate = true;
}
// if (userCreate) {
// user1.setUserId(userId);
// wxCUserService.saveOrUpdate(user1);
// }
return new CreateUser(user1.getId(),userId);
}

@Override


Загрузка…
Отмена
Сохранить