4 Star 1 Fork 0

hansdq / xcFinance

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

其他分支开发合并master分支,不要直接master开发。



bin                   ----生产二进制文件路径
config                ----环境配置路径
main                  ----入口
tools/modeltools      ----数据库生成结构体工具
app/command           ----脚本层
app/common/define.go  ----业务配置文件
lib                   ----SDK目录
app/controller
app/gateway
app/model
app/route
app/service

帐号: 18509150914


抖店财务软件开发

相关帐号信息

  • 抖店应用
  1. 登陆帐号: 18509150914 (验证码登陆)
  2. 登陆地址:https://op.jinritemai.com/login?redirect=%2Fconsole%2Fapp-manage%2Fcenter
  3. APP_Key:7180744065011418680
  4. APP_Secret:096c23bb-f5d5-475c-8240-7cf3a9c8e5d8
  5. 回调地址:https://finance.2btool.com/api/v1/msgCallback
  6. 去使用地址:https://finance.2btool.com/api/v1/use
  • 千川应用
  1. 登陆帐号: 18509150914 (验证码登陆)
  2. 登陆地址:https://open.oceanengine.com/developer/admin/service_list/#/external/?appType=qianchuan
  3. APP_ID:1753371682397195
  4. Secret:f462d3cf57cb84dc54c7ccb8bcff746e3402bcd4
  • gitee仓库
  1. https://gitee.com/hansdq/xc-finance

财务应用授权流程

官方文档

订购流程

  • 当商家购买订购后,我们会在回调地址中接收到一条加密的请求,用应用的APP_Secret可解密请求查看具体信息,推送消息是POST方式,编码格式为utf-8,接收到请求后我们需要返回给抖音一条json,告诉抖音已正常收到。
  • 响应
    type MsgResponse struct {
     Code int64  `json:"code"` // 为0表示成功
     Msg  string `json:"msg"`  // 响应信息,当code不为0时取此信息
    }
  • 解密例子
    func AesDecrypt() string {
     msgSecret := "Vf6ClcmtqC5KDKi7//XHv8cfPtD653kt+jV+eHhyPA9ZZfDsatobIry7nQzGEqvQpBK1EAOTPbuhxl1Er/nDcQ==" //加密之后的消息
     appSecret := "a5c5a2dc-31ca-4a7a-b743-e862d96082bd"
     var appSecretArr = []byte(strings.ReplaceAll(appSecret, "-", ""))
     bytesPass, err := base64.StdEncoding.DecodeString(msgSecret)
     if err != nil {
        fmt.Println(err)
        return "解密失败!!!"
     }
     sourceMsg, err := DoAesDecrypt(bytesPass, appSecretArr)
     if err != nil {
        fmt.Println(err)
        return "解密失败!!!"
     }
     fmt.Printf("解密后:%s\n", sourceMsg)
     return string(sourceMsg)
      }
      func DoAesDecrypt(encryptedMsg, key []byte) ([]byte, error) {
      block, err := aes.NewCipher(key)
      if err != nil {
          return nil, err
      }
      //AES分组长度为128位,所以blockSize=16,单位字节
      blockSize := block.BlockSize()
      blockMode := cipher.NewCBCDecrypter(block, key[:blockSize]) //初始向量的长度必须等于块block的长度16字节
      origData := make([]byte, len(encryptedMsg))
      blockMode.CryptBlocks(origData, encryptedMsg)
      origData = PKCS5UnPadding(origData)
      return origData, nil
      }
    
      //去除填充数据
      func PKCS5UnPadding(origData []byte) []byte {
      length := len(origData)
      unfilledNum := int(origData[length-1])
      return origData[:(length - unfilledNum)]
      }
    

具体解密后字段含义以及测试例子可查看官方文档


授权流程

  • 当用户订购完应用,每次在商家后台点击去使用的时候,我们会在“去使用”地址收到一条get请求,请求内包含code字段,(授权码code;有效期10分钟,换取access_token成功后立即失效。),用授权码code通过SDK获取access_token。

抖店SDK使用方法

  1. 获取access_token
//设置appKey和appSecret,全局设置一次
doudian_sdk.GlobalConfig.AppKey = "7180744065011418680"
doudian_sdk.GlobalConfig.AppSecret = "096c23bb-f5d5-475c-8240-7cf3a9c8e5d8"
accessToken, err := doudian_sdk.BuildAccessToken(&doudian_sdk.BuildAccessTokenParam{Code: "xxxxxxxx"})
  1. 刷新access_token
//设置appKey和appSecret,全局设置一次
doudian_sdk.GlobalConfig.AppKey = "7180744065011418680"
doudian_sdk.GlobalConfig.AppSecret = "096c23bb-f5d5-475c-8240-7cf3a9c8e5d8"
accessToken, err := doudian_sdk.RefreshAccessTokenParam(&doudian_sdk.RefreshAccessTokenParam{
RefreshToken: "xxxxxxxxxx"})
  1. 调用API,以/address/list为例:

    API文档:https://op.jinritemai.com/docs/api-docs/13/2858

request := address_list_request.New()
request.GetParams().PageNo = 1
request.GetParams().PageSize = 10
request.GetParams().ShopId = 123456
response := request.Execute(accessToken)
  1. 完整的demo
//设置appKey和appSecret,全局设置一次
doudian_sdk.GlobalConfig.AppKey = "7180744065011418680"
doudian_sdk.GlobalConfig.AppSecret = "096c23bb-f5d5-475c-8240-7cf3a9c8e5d8"
//创建Access Token
accessToken, err := doudian_sdk.BuildAccessToken(&doudian_sdk.BuildAccessTokenParam{ShopId: 4463798})
if err != nil {
    panic(err)
}
//构建Open Api请求参数
request := address_list_request.New()
request.GetParams().PageNo = 1
request.GetParams().PageSize = 10
request.GetParams().ShopId = 123456
//调用Open Api
response := request.Execute(accessToken)

抖店消息推送

  1. 消息推送服务指南: https://op.jinritemai.com/docs/guide-docs/153/99
  2. 消息推送接口文档:https://op.jinritemai.com/docs/message-docs/30/109

千川使用方法

//根据不同接口做params 和header
params := make(map[string]interface{})
header := make(map[string]string)
header["Access-Token"] = "XXXXXX"
params["app_id"] = "XXXX"
params["secret"] = "XXXX"
//统一封装接口, 其中define.GET_ADVERTISER 在配置文件内做固定URL映射
getAdvertiserRes, err := gateway.HttpRequestJsonForTimeout(c, define.GET_REQUEST, define.GET_ADVERTISER, params, header, time.Second*define.TimeOut)


核心实现思路

  1. 商家订购后通过平台推送的POST解密获取订购信息(金额,服务时间 店铺名称 店铺ID等)

  2. 商家点击去使用通过平台回调的code获取access_token、店铺ID、refresh_token等信息。access_token有有效期,需考虑过期问题.

  3. 通过推送消息服务,实时获取商家新订单和售后订单,有新订单支付平台会推送过来订单ID、店铺ID 通过订单ID 调用订单详情接口获取详细数据。其中包含支付金额等信息。有退款订单同理,退款包含售前退款、售后退款、仅退款、退款退货等。

  4. 通过以上可实现软件中的销售、退款、收入、销售商品数、退件数等信息。

  5. 通过以上信息可实现商品销售排行、退款趋势等功能模块

  6. 千川获取广告费流程(千川为店铺级别,一个店铺一个access_token,一个access_token可获取多个账户.)

  • 前端内嵌方式入驻平台,当用户进入时子级监听到access_token。
  • 官方文档:https://open.oceanengine.com/labels/12/docs/1697459404445838
  • 0.<获取已授权的账户(店铺/代理商)> ->当返回结果中data.list.account_role == PLATFORM_ROLE_SHOP_ACCOUNT时 取data.list.advertiser_id的值 即为账户ID 也就是shopid
    1. 通过API [账户管理->账户关系获取->获取店铺账户关联的广告账户列表] 获取广告主账户ID列表。
    1. 通过API [千川投放管理->广告计划管理->获取账户下计划列表(不含创意信息)] 可获取到多个计划ID和商品ID(千川默认是一个商品一个计划)。其中入参 filtering.marketing_goal可区分短视频带货和直播带货
    1. 通过API [千川数据报表->广告数据报表->获取广告账户数据],入参:账户ID、fields=stat_cost(查询消耗指标)、filtering.marketing_goal=可区分短视频带货和直播带货。此接口可获取单个账户ID下的消耗金额。
    1. 通过API [千川数据报表->广告数据报表->获取广告计划数据],,入参:账户ID、fields=stat_cost(查询消耗指标)、filtering.marketing_goal=可区分短视频带货和直播带货。此接口可获取单个账户ID下指定计划或多个计划的消耗金额。
  • 一个店铺 = 一个access_token; 一个access_token可获取到多个账户ID; 一个账户ID可获取到多个计划; 一个计划绑定一个商品ID;

  1. 通过以上千川接口可获取到千川总店铺的消耗,单个商品的消耗,单个商品短视频的消耗,单个商品直播的消耗,总店铺短视频的消耗,总店铺直播的消耗,指定时间范围内的各种消耗。
  2. 运费模块为规则参考视频:https://www.bilibili.com/video/BV1hy4y177fs
  3. 工资、房租、水电、保险费、营销费、包装费、自定义科目费用。
  4. 通过以上可实现利润、利润率的计算。实现日周月自定义时间段利润,利润趋势模块、商品利润排行模块、直播、短视频消耗模块、全店总利润模块。
  5. 千川获取账户基本信息流程
    1. 通过API [账户管理->账户关系获取->获取店铺账户关联的广告账户列表] 获取账户ID列表。
    1. 通过API [账户管理->账户关系获取->获取千川广告账户全量信息] 获取账户信息

企业端功能

自建帐号系统 注册帐号 绑定多个店铺 统计多店铺总利润。


API开发文档

链接: https://www.apifox.cn/apidoc/shared-1d0b7606-7a40-48af-87df-b47a8f22d7a2

访问密码: 123123


细分功能接口参考 [快计师] 软件.

空文件

简介

抖店协创财务软件 展开 收起
Go 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/hansdq/xc-finance.git
git@gitee.com:hansdq/xc-finance.git
hansdq
xc-finance
xcFinance
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891