mirror of
https://github.com/GMWalletApp/epusdt.git
synced 2026-07-07 10:16:15 +00:00
update router for support epay GET and POST
This commit is contained in:
+31
-17
@@ -75,25 +75,20 @@ func RegisterRoute(e *echo.Echo) {
|
||||
|
||||
// epay v1 routes
|
||||
epayV1 := paymentRoute.Group("/epay/v1")
|
||||
epayV1.GET("/order/create-transaction/submit.php", func(ctx echo.Context) error {
|
||||
money := ctx.QueryParam("money")
|
||||
name := ctx.QueryParam("name")
|
||||
notifyURL := ctx.QueryParam("notify_url")
|
||||
outTradeNo := ctx.QueryParam("out_trade_no")
|
||||
returnURL := ctx.QueryParam("return_url")
|
||||
signstr := ctx.QueryParam("sign")
|
||||
// signType := ctx.QueryParam("sign_type")
|
||||
|
||||
m := map[string]interface{}{
|
||||
"money": money,
|
||||
"name": name,
|
||||
"notify_url": notifyURL,
|
||||
"out_trade_no": outTradeNo,
|
||||
"pid": config.GetEpayPid(), // 注意:验签时需要包含 pid 参数
|
||||
"return_url": returnURL,
|
||||
epayV1.Match([]string{http.MethodPost, http.MethodGet}, "/order/create-transaction/submit.php", func(ctx echo.Context) error {
|
||||
params := make(map[string]interface{})
|
||||
for k, v := range ctx.QueryParams() {
|
||||
params[k] = v[0]
|
||||
}
|
||||
|
||||
checkSignature, err := sign.Get(m, config.GetApiAuthToken())
|
||||
signstr := params["sign"].(string)
|
||||
delete(params, "sign")
|
||||
delete(params, "sign_type")
|
||||
|
||||
// we need to add pid to params for signature verification
|
||||
params["pid"] = config.GetEpayPid()
|
||||
|
||||
checkSignature, err := sign.Get(params, config.GetApiAuthToken())
|
||||
if err != nil {
|
||||
return constant.SignatureErr
|
||||
}
|
||||
@@ -101,6 +96,25 @@ func RegisterRoute(e *echo.Echo) {
|
||||
return constant.SignatureErr
|
||||
}
|
||||
|
||||
// safely get string value from map
|
||||
getString := func(m map[string]interface{}, key string) string {
|
||||
v, ok := m[key]
|
||||
if !ok {
|
||||
return ""
|
||||
}
|
||||
s, ok := v.(string)
|
||||
if !ok {
|
||||
return ""
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
money := getString(params, "money")
|
||||
name := getString(params, "name")
|
||||
notifyURL := getString(params, "notify_url")
|
||||
outTradeNo := getString(params, "out_trade_no")
|
||||
returnURL := getString(params, "return_url")
|
||||
|
||||
amountFloat, err := strconv.ParseFloat(money, 64)
|
||||
if err != nil {
|
||||
return comm.Ctrl.FailJson(ctx, fmt.Errorf("invalid money value: %s", money))
|
||||
|
||||
Reference in New Issue
Block a user