package controllers import ( "encoding/json" "git.rosy.net.cn/baseapi/platformapi/lakala" lakalaServer "git.rosy.net.cn/jx-callback/business/lakala" "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/server/web" "io/ioutil" ) type LaKaLaCallbackController struct { web.Controller } // ApplyContract 合同申请回调 func (c *LaKaLaCallbackController) ApplyContract() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----applyContract := %s", string(body)) apply := &lakala.ApplyContractCallBack{} if err = json.Unmarshal(body, apply); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.ApplyContract(apply)) c.ServeJSON() return } // ApplyContractByPeople 合同申请人工审核回调 func (c *LaKaLaCallbackController) ApplyContractByPeople() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----applyContractByPeople := %s", string(body)) apply := &lakala.ApplyContractByPeopleCallBack{} if err = json.Unmarshal(body, apply); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.ApplyContractByPeople(apply)) c.ServeJSON() return } // SeparateMsg 商户开通/修改分账业务回调 func (c *LaKaLaCallbackController) SeparateMsg() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----SeparateMsg := %s", string(body)) separate := &lakala.SeparateCallback{} if err = json.Unmarshal(body, separate); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.CreateSeparateShop(separate)) c.ServeJSON() return } // SeparateBind 分账关系绑定回调,解绑回调 func (c *LaKaLaCallbackController) SeparateBind() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----SeparateBind := %s", string(body)) separate := &lakala.SeparateBindCallback{} if err = json.Unmarshal(body, separate); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.BindSeparateBand(separate)) c.ServeJSON() return } // Separate 分账申请/撤回/退回 回调 func (c *LaKaLaCallbackController) Separate() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----Separate := %s", string(body)) separate := &lakala.SeparateResult{} if err = json.Unmarshal(body, separate); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.GetSeparateRecordsCallback(separate)) c.ServeJSON() return } // EwalletWithdrawD1 账户D1提现回调 func (c *LaKaLaCallbackController) EwalletWithdrawD1() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----EwalletWithdrawD1 := %s", string(body)) separate := &lakala.EwalletWithdrawD1CallBack{} if err = json.Unmarshal(body, separate); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.EwalletWithdrawD1Callback(separate)) c.ServeJSON() return } // OrderStatus 收银台订单通知 func (c *LaKaLaCallbackController) OrderStatus() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----OrderStatus := %s", string(body)) separate := &lakala.QueryOrderCallBackResp{} if err = json.Unmarshal(body, separate); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } c.Data["json"] = lakala.CallBackResultInfo(lakalaServer.OrderStatusCallback(separate)) c.ServeJSON() return } // PayStatus 主扫支付状态回调 //(1)交易通知接口是交易成功完成后会向 notify_url这个地址(主扫交易或者被扫交易请求中的notify_url字段)发起交易结果通知。拉卡拉系统通知时,如果商户的应答没有按照以下“响应参考报文”示例返回成功状态时,则系统认为通知失败,系统会通过一定的策略定期重新发起通知。 //(2)同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。 //(3)在没有收到拉卡拉支付交易通知的情况下,建议商户主动调用【06查询交易】确认交易状态。 //(4)被扫交易如果交易接口实时返回成功结果,则不再通过该接口发出交易通知;只有没有实时返回成功结果时,才会通过该接口发出交易通知。 func (c *LaKaLaCallbackController) PayStatus() { body, err := ioutil.ReadAll(c.Ctx.Request.Body) if err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } globals.SugarLogger.Debugf("-----PayStatus := %s", string(body)) separate := &lakala.PayStatusCallBack{} if err = json.Unmarshal(body, separate); err != nil { c.Data["json"] = lakala.CallBackResultInfo(err) c.ServeJSON() return } // todo c.Data["json"] = lakala.CallBackResultInfo(localjx.OnLaKaLaPayCallback(separate)) c.ServeJSON() return }