|
|
@@ -198,11 +198,14 @@ public class ProductOrderService {
|
|
|
Integer moneyAmount = order.getMoneyAmount();
|
|
|
if (moneyAmount != null && moneyAmount > 0) {
|
|
|
User user = userMapper.selectById(userId);
|
|
|
- if (user == null || user.getOpenid() == null || user.getOpenid().isEmpty()) {
|
|
|
+ String openid = user == null ? null : user.getOpenid();
|
|
|
+ boolean invalidOpenid = openid == null || openid.isEmpty()
|
|
|
+ || openid.startsWith("phone:") || openid.startsWith("mock_openid_");
|
|
|
+ if (invalidOpenid) {
|
|
|
if (pointsUsed > 0) {
|
|
|
pointsService.refundUserPoints(userId, pointsUsed, "支付失败退款:" + orderNo);
|
|
|
}
|
|
|
- return Result.error("用户openid不存在,无法支付");
|
|
|
+ return Result.error("未绑定微信账号,请通过微信登录后再支付");
|
|
|
}
|
|
|
Map<String, Object> wechatPayParams = paymentService.createWechatPrepay(
|
|
|
orderNo, order.getProductName(), moneyAmount, user.getOpenid());
|