package hdl

import (
	"applet/app/e"
	"applet/app/svc"
	"github.com/gin-gonic/gin"
)

func Pay(c *gin.Context) {
	orderType := c.Param("orderType")
	payMethod := c.Param("payMethod")
	if orderType == "" || payMethod == "" {
		e.OutErr(c, e.ERR_INVALID_ARGS)
		return
	}
	payFunc, ok := svc.PayFuncList[orderType][payMethod]
	if !ok || payFunc == nil {
		e.OutErr(c, e.ERR, e.NewErr(500, "不存在该支付方式"))
		return
	}
	r, err := payFunc(c)
	if err != nil {
		switch err.(type) {
		case e.E:
			err1 := err.(e.E)
			e.OutErr(c, err1.Code, err1.Error())
			return
		default:
			e.OutErr(c, e.ERR_PAY_ERR, e.NewErr(e.ERR_PAY_ERR, err.Error()))
			return
		}
	}
	e.OutSuc(c, r, nil)
	return

	return
}
