57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package api
|
|
|
|
import (
|
|
"crm/common"
|
|
"crm/models"
|
|
"crm/response"
|
|
"crm/service"
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type SubscribeApi struct {
|
|
subscribeService *service.SubscribeService
|
|
}
|
|
|
|
func NewSubscribeApi() *SubscribeApi {
|
|
subscribeApi := SubscribeApi{
|
|
subscribeService: service.NewSubscribeService(),
|
|
}
|
|
return &subscribeApi
|
|
}
|
|
|
|
// 订阅专业版,发起支付
|
|
func (s *SubscribeApi) Pay(context *gin.Context) {
|
|
var param models.SubscribePayParam
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
err := context.ShouldBind(¶m)
|
|
if int64(uid) <= 0 || err != nil {
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
return
|
|
}
|
|
param.Uid = int64(uid)
|
|
payUrl, errCode := s.subscribeService.Pay(param)
|
|
response.Result(errCode, payUrl, context)
|
|
}
|
|
|
|
// 支付成功回调
|
|
func (s *SubscribeApi) PayBack(context *gin.Context) {
|
|
notifyReq := common.GetAlipay().VerifySign(context.Request)
|
|
errCode := s.subscribeService.PayBack(notifyReq.GetString("out_trade_no"))
|
|
context.String(http.StatusOK, "%s", "success")
|
|
response.Result(errCode, nil, context)
|
|
}
|
|
|
|
// 获取订阅信息
|
|
func (s *SubscribeApi) GetInfo(context *gin.Context) {
|
|
uid, _ := strconv.Atoi(context.Request.Header.Get("uid"))
|
|
if int64(uid) <= 0 {
|
|
response.Result(response.ErrCodeParamInvalid, nil, context)
|
|
return
|
|
}
|
|
subscribeInfo, errCode := s.subscribeService.GetInfo(int64(uid))
|
|
response.Result(errCode, subscribeInfo, context)
|
|
}
|