diff --git a/pets-be/internal/handler/misc.go b/pets-be/internal/handler/misc.go index b5330cd..170241a 100644 --- a/pets-be/internal/handler/misc.go +++ b/pets-be/internal/handler/misc.go @@ -1,6 +1,8 @@ package handler import ( + "errors" + "github.com/gin-gonic/gin" "github.com/sundynix/pets-be/internal/middleware" @@ -42,6 +44,11 @@ func (h *Handler) GetPro(c *gin.Context) { func (h *Handler) ActivatePro(c *gin.Context) { info, err := h.svc.ActivatePro(middleware.UserID(c)) if err != nil { + // 支付未接入不是服务器错误,按参数错返回,前端直接展示提示文案 + if errors.Is(err, service.ErrPayNotReady) { + response.FailParams(c, err.Error()) + return + } response.FailErr(c, err) return } diff --git a/pets-be/internal/service/pro.go b/pets-be/internal/service/pro.go index 9c7d585..37dc153 100644 --- a/pets-be/internal/service/pro.go +++ b/pets-be/internal/service/pro.go @@ -40,7 +40,15 @@ func (s *Service) GetPro(userID string) (*ProInfo, error) { } // ActivatePro 开通年费会员 +// ActivatePro 开通会员。 +// ⚠️ 支付尚未接入:在接上微信支付、且校验到真实支付成功之前,这里必须直接拒绝, +// 否则任何人调一次接口就白拿一年会员。接支付时把下面这段换成「校验支付单据后再写库」。 func (s *Service) ActivatePro(userID string) (*ProInfo, error) { + return nil, ErrPayNotReady +} + +// activateProAfterPaid 支付成功后真正写入会员状态(当前无人调用,等接支付时使用) +func (s *Service) activateProAfterPaid(userID string) (*ProInfo, error) { now := time.Now() end := now.AddDate(1, 0, 0) var m model.ProMembership diff --git a/pets-be/internal/service/service.go b/pets-be/internal/service/service.go index b308418..dc6361b 100644 --- a/pets-be/internal/service/service.go +++ b/pets-be/internal/service/service.go @@ -14,6 +14,10 @@ import ( // ErrNotFound 资源不存在(handler 据此返回 40400) var ErrNotFound = errors.New("not found") +// ErrPayNotReady 支付未接入。会员开通必须走真实支付,未接入前一律拒绝, +// 避免「点一下白拿会员」。 +var ErrPayNotReady = errors.New("支付功能即将开放,敬请期待") + // Service 业务逻辑聚合,方法按领域分散在各文件 type Service struct { db *gorm.DB diff --git a/pets-fe/components/bottom-sheet/bottom-sheet.wxml b/pets-fe/components/bottom-sheet/bottom-sheet.wxml index be073de..77f28a0 100644 --- a/pets-fe/components/bottom-sheet/bottom-sheet.wxml +++ b/pets-fe/components/bottom-sheet/bottom-sheet.wxml @@ -235,7 +235,10 @@ module.exports.sel = function (map, key, index, def) { {{item}} - + + + 会员功能还在准备中,暂未开放购买。 + diff --git a/pets-fe/pages/profile/profile.wxml b/pets-fe/pages/profile/profile.wxml index 38c51d2..cbdde59 100644 --- a/pets-fe/pages/profile/profile.wxml +++ b/pets-fe/pages/profile/profile.wxml @@ -29,7 +29,7 @@ 关于我们 v0.2 › - +