package partial import ( "encoding/json" "fmt" "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys" "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" "git.qianqiusoft.com/qianqiusoft/light-apiengine/third/alipay" "git.qianqiusoft.com/qianqiusoft/light-apiengine/third/ureport" "git.qianqiusoft.com/qianqiusoft/light-apiengine/third/wx" "github.com/silenceper/wechat/pay" "io/ioutil" //sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models" //sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils" //"git.qianqiusoft.com/qianqiusoft/light-apiengine/models" //__import_packages__ ) // _WxEcho // @Title _WxEcho // @Description 微信echo // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_WxEcho(c *entitys.CtrlContext) { echostr := c.Ctx.DefaultQuery("echostr","") fmt.Println("echostr:"+echostr) c.Ctx.String(200, echostr) } // _WxpayCallback // @Title _WxpayCallback // @Description 微信支付回调 // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_WxpayCallback(c *entitys.CtrlContext) { r := wx.CallWxPayCallbackHandler(c) if r.Code != 200{ c.Ctx.JSON(500, r) }else{ res := pay.NotifyResponse{} res.ReturnCode = "SUCCESS" res.ReturnMsg = "OK" c.Ctx.XML(200,&res) } } // _WxoauthParams // @Title _WxoauthParams // @Description 获取微信oauth配置 // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_WxoauthParams(c *entitys.CtrlContext) { contentBody, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil{ fmt.Println("读取body错误", err.Error()) c.Ctx.JSON(500, models.SysReturn{500, err.Error(), ""}) return } bmap := make(map[string]string) err = json.Unmarshal(contentBody, &bmap) if err != nil{ fmt.Println("Unmarshal错误", err.Error()) c.Ctx.JSON(500, models.SysReturn{500, err.Error(), ""}) return } param, err := wx.GetOAuthParams(bmap) if err != nil{ c.Ctx.JSON(500, models.SysReturn{500, "", ""}) }else{ c.Ctx.JSON(200, models.SysReturn{200, "", param}) } } // _WxLogin // @Title _WxLogin // @Description 获取微信oauth配置 // @Param body false "微信登录参数,必须包含code字段(微信临时令牌)" // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_WxLogin(c *entitys.CtrlContext) { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil{ fmt.Println("SysPublic_WxLogin 读取请求数据错误", err.Error()) c.Ctx.JSON(200, models.SysReturn{500, err.Error(), ""}) return } params := make(map[string]interface{}) err = json.Unmarshal(body, ¶ms) if err != nil{ fmt.Println("SysPublic_WxLogin unmarshal err", err.Error()) c.Ctx.JSON(200, models.SysReturn{500, err.Error(), ""}) return } code := "" var v interface{} = nil ok := false if v, ok = params["code"]; !ok{ fmt.Println("SysPublic_WxLogin 不存在临时令牌code字段") c.Ctx.JSON(200, models.SysReturn{500, "不存在临时令牌code字段", ""}) return } if code, ok = v.(string); !ok{ fmt.Println("临时令牌code字段不能转换为string") c.Ctx.JSON(200, models.SysReturn{500, "临时令牌code字段不能转换为string", ""}) return } if code == ""{ fmt.Println("临时令牌code为空") c.Ctx.JSON(200, models.SysReturn{500, "临时令牌code为空", ""}) return } // 获取微信信息 userInfo, err := wx.GetUserInfoByCode(code) if err != nil { fmt.Println("wx.GetUserInfoByCode 错误", err.Error()) c.Ctx.JSON(200, models.SysReturn{500, err.Error(), nil}) return } ret := wx.CallWxLoginCallbackHandler(c, body, userInfo) c.Ctx.JSON(200, ret) } // _WxjssdkParams // @Title _WxjssdkParams // @Description 获取微信jssdk配置 // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_WxjssdkParams(c *entitys.CtrlContext) { url := c.Ctx.DefaultQuery("url", "") if url == ""{ c.Ctx.JSON(200, models.SysReturn{500, "参数rul为空", ""}) return } config, err := wx.GetJSSDKRarams(url) if err != nil{ c.Ctx.JSON(200, models.SysReturn{500, err.Error(), ""}) }else{ c.Ctx.JSON(200, models.SysReturn{200, "", config}) } } // _AlipayCallback // @Title _AlipayCallback // @Description 支付宝支付回调 // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_AlipayCallback(c *entitys.CtrlContext) { alipay.CallWxPayCallbackHandler(c) } // _Ureport // @Title _Ureport // @Description 报表统一接口 // @Success 200 {object} Account // @Failure 403 :id is empty func SysPublic_Ureport(c *entitys.CtrlContext) { ureport.CallUreportHanlder(c) } func __none_func_sys_public__(params ... interface{}) bool{ return true }