Files
baseapi/platformapi/kuaishou_mini/kuaishou_pay.go
邹宗楠 18572ce050 1
2023-04-03 09:22:55 +08:00

40 lines
935 B
Go

package kuaishou_mini
import (
"errors"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"time"
)
// PreCreateOrder 预下单生成支付信息
func (a *API) PreCreateOrder(param *PreCreateOrderReq) (string, error) {
if a.appId == "" || a.appSecret == "" {
return "", errors.New("appId/appSecret 不能为空")
}
param.Sign = a.sign(utils.Struct2MapByJson(param))
result, err := a.AccessAPI1(a.FullUrl(KuaiShouPreCreateOrder), utils.Struct2MapByJson(param))
if err != nil {
return "", err
}
order := PreCreateOrderResponse{}
if err := utils.Map2StructByJson(result, &order, false); err != nil {
return "", err
}
if order.Result != 1 {
return "", errors.New(order.ErrorMsg)
}
return order.OrderInfo, nil
}
func (a *API) FullUrl(bashUrl string) string {
if a.accessToken == "" || a.expiresIn < time.Now().Unix() {
a.GetToken()
}
return fmt.Sprintf(bashUrl+"?app_id=%s&access_token=%s", a.appId, a.accessToken)
}