{"id":27192233,"url":"https://github.com/imactool/jinritemai","last_synced_at":"2025-04-09T18:44:13.637Z","repository":{"id":48883783,"uuid":"343340719","full_name":"iMactool/jinritemai","owner":"iMactool","description":"抖音抖店工具型、自用型抖店开放平台SDK","archived":false,"fork":false,"pushed_at":"2021-07-13T01:10:14.000Z","size":103,"stargazers_count":47,"open_issues_count":0,"forks_count":19,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-25T01:08:23.240Z","etag":null,"topics":["laravel","php","sdk","yii2"],"latest_commit_sha":null,"homepage":"https://imactool.github.io/jinritemai/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iMactool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-01T08:23:37.000Z","updated_at":"2024-04-14T10:00:06.000Z","dependencies_parsed_at":"2022-09-16T04:01:35.710Z","dependency_job_id":null,"html_url":"https://github.com/iMactool/jinritemai","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMactool%2Fjinritemai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMactool%2Fjinritemai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMactool%2Fjinritemai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iMactool%2Fjinritemai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iMactool","download_url":"https://codeload.github.com/iMactool/jinritemai/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248090734,"owners_count":21046141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","php","sdk","yii2"],"created_at":"2025-04-09T18:44:12.895Z","updated_at":"2025-04-09T18:44:13.628Z","avatar_url":"https://github.com/iMactool.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e jinritemai \u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e 工具型抖店开放平台SDK.\u003c/p\u003e\n\n[![Build Status](https://travis-ci.org/iMactool/jinritemai.svg?branch=master)](https://travis-ci.org/iMactool/jinritemai) [![StyleCI](https://github.styleci.io/repos/343340719/shield?branch=master)](https://github.styleci.io/repos/343340719?branch=master) \n[![Latest Stable Version](https://poser.pugx.org/imactool/jinritemai/v)](//packagist.org/packages/imactool/jinritemai)\n[![Latest Unstable Version](https://poser.pugx.org/imactool/jinritemai/v/unstable)](//packagist.org/packages/imactool/jinritemai)\n[![Total Downloads](https://poser.pugx.org/imactool/jinritemai/downloads)](//packagist.org/packages/imactool/jinritemai)\n[![License](https://poser.pugx.org/imactool/jinritemai/license)](//packagist.org/packages/imactool/jinritemai)\n\n## 环境需求\n\n```js\nPHP \u003e= 7.1\nPHP cURL 扩展\nPHP OpenSSL 扩展\n```\n    \n## Installing\n\n```shell\n$ composer require imactool/jinritemai\n```\n\n## Usage \n\u003e 具体可以看 example 示例代码 ，需要 `composer install `\n\u003e \n\u003e 其中 `example/index.php` 是针对 工具类型 \n\u003e \n\u003e 而 `example/self_use.php` 则是针对的 自用型\n\u003e \n\n\n### 授权相关\n\n```\n\nrequire __DIR__ .'/vendor/autoload.php';\n\nuse Imactool\\Jinritemai\\DouDianApp;\n\ndate_default_timezone_set('PRC');\n\n$config = [\n    'app_key'       =\u003e '你的appkey',\n    'app_secret'    =\u003e '你的秘钥',\n    'service_id'    =\u003e '你的服务id' \n];\n\n$servic = new DouDianApp($config);\n\n```\n\n### 工具型应用授权\n```\n#1、先获取 获取店铺授权URL\n$authUrl = $servic-\u003eAuth-\u003egenerateAuthUrl('state');\n \n\n#2、拿到 URL code 之后，需要调用一次 requestAccessToken() 获取授权方授权信息 ; \n# 店铺同意授权后，使用授权code，GET方式请求可获取access_token：\n$code = 'URL code ';\n$accessInfo = $servic-\u003eAuth-\u003erequestAccessToken($code);\n \n ```\n\n### 自用型应用授权\n\n``` \n$shopid = 23; //$shopid 为授权方店铺的ID shop_id\ntry {\n    $accessInfo = $servic-\u003eAuth-\u003egetShopAccessToken($shopid);\n    echo \"调用结果：\";\n    var_dump($accessInfo);\n}catch (Exception $exception){\n    var_dump($exception);\n}\n```\n\n\n目前工具已支持 `自用型应用授权` 和 `工具型应用授权` 两种授权类型。主要区别如下\n\n|店铺授权类型\t|调用方式|说明|\n|---|---|---|\n|工具型应用授权\t|1、`$authUrl = $servic-\u003eAuth-\u003egenerateAuthUrl('state');`|\t先获取 获取店铺授权URL|\n|工具型应用授权\t|2、 ` $code = 'URL code'; $accessInfo = $servic-\u003eAuth-\u003erequestAccessToken($code); ` |拿到 URL code 之后，需要调用一次 requestAccessToken() 获取授权方授权信息 ;店铺同意授权后，使用授权code，GET方式请求可获取access_token：|\n||\n|自用型应用授权|1、`$shopid = 23;  $servic-\u003eAuth-\u003egetShopAccessToken($shopid)`|自用型 - 获取access_token|\n\n\n\n### 获取授权方实例\n\u003e 这里 `自用型应用授权` 和 `工具型应用授权` 都是一样的用法\n```\n# 授权方已经把店铺授权给你的抖店开放平台了，接下来的代授权方实现业务只需一行代码即可获得授权方实例。\n$shopid = 2222; //$shopid 为授权方店铺的ID shop_id\n$refresh_token = '授权店铺token'; //$refresh_token 为授权方的 refresh_token，可通过 获取授权方授权信息 (`$servic-\u003eAuth-\u003erequestAccessToken($code)`) 接口获得。\n\n$app = $servic-\u003eshopApp($shopid,$refresh_token);\n\n\n#3.开始调用接口 \n$result = $shopAccount-\u003egetShopBrandList();\n\n```\n\n\n## 实现接口\n\u003e 基于抖店开放平台的（工具型、自用型）SDK ，即本`SDK`是服务第三方开发者创建工具型应用（工具型应用必须上架，才能走授权流程）\n\u003e 以下列出来的接口都是已实现的\n\u003e 具体可以看 src/DouDianApp.php .\n\u003e $app 在本文档都是指的 `$servic-\u003eshopApp($shopid,$refresh_token);` 得到的实例\n\u003e 不需要自己刷新 refresh_token SDK 内部会自动实现刷新。\n\u003e 当如果返回 token 过期 请参考[问题](#问题)\n\u003e\n\n \n#### 店铺api  `$app-\u003eShop` \n\u003e 例如 `$app-\u003eShop-\u003egetShopBrandList()` \n\n - 获取店铺的已授权品牌列表 getShopBrandList()\n - 获取店铺后台供商家发布商品的类目 getShopCategory()\n - 售后地址列表接口 addRessList()\n   \n#### 商品api `$app-\u003eShop`\n\u003e `$app-\u003eShop-\u003eaddProduct($params)`\n\n- 运费模板查询 getFreightTemplateList()\n- 添加商品 addProduct()\n- 商品发布 addProductV2()\n- 删除商品 delProduct()\n- 获取商品详情  getProduct()\n- 编辑商品   editProduct()\n- 编辑商品   editProductV2()\n- 编辑商品限购 setProductBuyerLimit()\n- 根据商品分类获取对应的属性列表 getPrdocutCateProperty()\n- 获取商品列表 getProductList()\n- 商品下架 setProductOffline()\n- 商品上架 setProductOnline()\n- 添加SKU addSku()\n- 批量添加sku addAllSku()\n- 获取商品sku详情 getSku()\n- 修改sku编码 editSkuCode()\n- 编辑sku价格 editSkuPrice()\n- 修改sku对应的供应商编码ID editSupplierId()\n- 获取商品sku列表 getSkuList()\n- 修改sku库存 editSkuStock()\n- 批量修改sku库存 editSkuStockBatch()\n- 添加规格 addSpec()\n- 删除规格 delSpec()\n- 获取规格列表 getSpecList()\n- 获取规格详情 getSpec()\n- 获取商品列表新版 getProductListV2()\n \n\n####  订单 api `$app-\u003eOrder`\n\n- 添加订单备注 addOrderRemark()\n- 设置店铺设置地址变更审核 setAddressAppliedSwitch()\n- 买家地址变更确认 addressConfirm()\n- 买家主动修改收货地址 addressModify()\n- 取消(货到付款)订单 cancelOrder()\n- 获取订单详情 getOrder()  即将下线\n- 获取订单详情 getOrderDetail()  即将下线\n- 获取服务单列表 getServiceOrderList()\n- 获取订单列  getOrderList() 即将下线\n- 获取订单列  getOrderSearchList() 新\n- 回复服务请求 replyService()\n- 查询商家服务单详情请求 serviceDetail()\n- 获取服务请求列表 serviceList()\n- 确认货到付款订单 confirmOrder()\n- 未支付订单改货款 updateOrderAmount()\n- 未支付订单邮费修改  updateOrderPostAmount()\n\n####  物流 api `$app-\u003eLogistics`\n \n- 获取区列表 areaList()\n- 获取市列表  cityList()\n- 获取省列表  provinceList()\n- 订单发货   sendOrderLogistics()\n- 一个父订单可发多个物流包裹  sendOrderLogisticsMultiPack()\n- 支持多个子订单发同一个物流包裹 sendOrderLogisticsSinglePack\n- 获取快递公司列表 logisticsCompanyList()\n- 修改发货物流  editLogisticsEdit()\n- 修改包裹里的物流信息 editLogisticsByPack()\n\n####  售后退款 api  `$app-\u003eAfterSale`\n\n- 商家为订单添加售后备注 afterSaleAddOrderRemark()\n- 商家确认处理换货申请 buyerExchange()\n- 商家确认是否收到换货 buyerExchangeConfirm()\n- 商家发货后仅退款申请 buyerRefund()\n- 商家处理退货申请 buyerReturn()\n- 商家确认是否收到退货 firmReceive()\n- 根据子订单ID查询退款详情 refundProcessDetail()\n- 卖家提交举证信息  submitEvidence()\n- 商家延长售后收货时限 timeExtend()\n- 货到付款订单上传退款凭证 uploadCompensation()\n- 商家处理备货中退款申请 shopRefund()\n- 售后单列表查询  refundListSearch()\n\n#### 运费险API `$app-\u003eInsurance`\n\n- 获取运费险保单详情 insurance()\n\n#### 库存 API `$app-\u003eStock`\n\n- 查询库存 getStockNum()\n- 创建单个区域仓 createWarehouse()\n- 批量创建区域仓 createBatchWarehouse()\n- 编辑区域仓  editWarehouse()\n- 查询区域仓  getWarehouse()\n- 批量查询区域仓 getWarehouseList()\n- 地址与区域仓解绑 removeAddrWarehouse()\n- 绑定单个地址到区域仓 setAddrWarehouse()\n- 批量绑定地址与区域仓 setBatchAddrWarehouse()\n- 设置指定地址下的仓的优先级 setPriorityWarehouse()\n\n#### 账单 API `$app-\u003eBill`\n\n- 仅自用型应用可使调用该接口 ，(非工具型)暂不支持\n- 仅自用型应用可使调用该接口 查询订单账单明细 settle()\n- 查询联盟订单明细 getOrderList()\n- 查询账单明细 getSettleBillDetail()\n\n#### 评价 API `$app-\u003eCommnet`\n\n- 获取店铺的评论列表 getCommentList()\n- 评价回复  replyComment()\n\n#### BIC质检API `$app-\u003eBtas`\n\u003e BIC 质检 也包含，这接口变动和改变的太快了~\n\n- 查询订单是否需要质检 getInspectionOrder()\n- 商家调用发货  shipping()\n- 图片质检送检  saveInspectionOnline()\n- 获取订单的质检结果  getOrderInspectionResult()\n- 商家送检调用  saveInspectionInfo()\n- 获取可图片鉴定的品牌  listBrand()\n----\n-   BIC 质检\n- 下载bic订单码 `$app-\u003eBtas-\u003edownloadOrderCodeByShop()`\n- bic流程订单商家发货接口 `$app-\u003eBtas-\u003eerpShopBindOrderCode()`\n\n\n## 问题\n- [access_token过期了该怎么办？](https://op.jinritemai.com/help/faq/43/207)\n\u003e 工具型应用：\n  可以使用refresh_token，调接口，获得新的access_token，详见工具型应用授权指南\n  如果refresh_token也过期了，则只能让商家点击“使用”按钮，会打开应用使用地址，地址参数里会带上新的授权code。然后用新的code，重新调接口，获取新的access_token。 商家如何使用应用\n\n \n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimactool%2Fjinritemai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimactool%2Fjinritemai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimactool%2Fjinritemai/lists"}