Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
蒋勇
zhichan
Commits
1b9b2984
Commit
1b9b2984
authored
Sep 16, 2020
by
王勇飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'center-channel' of gitlab.gongsibao.com:jiangyong/zhichan into center-channel
parents
e554d7dd
527d8878
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
620 additions
and
41 deletions
+620
-41
center-channel/app/base/api/impl/action/product.js
+3
-0
center-channel/app/base/api/impl/action/tmQuery.js
+3
-0
center-channel/app/base/api/impl/opreceive/need.js
+3
-0
center-channel/app/base/service/impl/common/qcCenterOrderSve.js
+5
-2
center-channel/app/base/service/impl/trademark/toolSve.js
+7
-0
center-channel/app/base/service/impl/utilsSve/utilsDeliverSve.js
+1
-1
center-channel/app/base/service/impl/utilsSve/utilsNeedSve.js
+224
-14
center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js
+102
-1
center-channel/app/base/service/impl/utilsSve/utilsProductSve.js
+40
-0
center-channel/app/base/system.js
+9
-1
center-channel/app/base/utils/aliyunClient.js
+1
-1
center-channel/app/config/routes/api.js
+27
-1
center-channel/app/config/routes/doc.js
+18
-18
center-channel/app/front/entry/public/apidoc/platform/order.md
+4
-1
center-channel/app/front/entry/public/apidoc/platform/product.md
+173
-1
No files found.
center-channel/app/base/api/impl/action/product.js
View file @
1b9b2984
...
...
@@ -37,6 +37,9 @@ class ProductAPI extends WEBBase {
case
"getProductPrice"
:
opResult
=
await
this
.
utilsProductSve
.
getProductPrice
(
pobj
,
pobj
.
actionBody
)
break
;
case
"getProductRecommend"
:
opResult
=
await
this
.
utilsProductSve
.
getProductRecommend
(
pobj
,
pobj
.
actionBody
);
break
;
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
}
...
...
center-channel/app/base/api/impl/action/tmQuery.js
View file @
1b9b2984
...
...
@@ -99,6 +99,9 @@ class TmQueryAPI extends WEBBase {
opResult
=
system
.
getResult
(
null
,
rtn
.
msg
);
}
break
;
case
"getNclByCode"
:
opResult
=
await
this
.
toolSve
.
getNclByCode
(
pobj
,
req
);
break
;
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
break
;
...
...
center-channel/app/base/api/impl/opreceive/need.js
View file @
1b9b2984
...
...
@@ -85,6 +85,9 @@ class Need extends APIBase {
case
"confirmIcpIntention"
:
// 2020 0827 lin 新增 4.3 用户需求确认
opResult
=
await
this
.
utilsNeedSve
.
confirmIcpIntention
(
pobj
,
pobj
.
actionBody
);
break
;
case
"needBatchUpload"
:
// 2020 0914 lin 新增 刷单一条龙服务
opResult
=
await
this
.
utilsNeedSve
.
needBatchUpload
(
pobj
,
pobj
.
actionBody
);
break
;
case
"testsymq"
:
opResult
=
await
this
.
utilsNeedSve
.
testsymq
(
pobj
);
break
;
...
...
center-channel/app/base/service/impl/common/qcCenterOrderSve.js
View file @
1b9b2984
...
...
@@ -54,7 +54,8 @@ class QcCenterOrderService extends AppServiceBase {
}
var
self
=
this
;
//推送方案
await
this
.
pushIcpSolution
(
pushObj
,
needsolution
.
solutionNo
,
pobj
.
appInfo
,
self
);
// 2020 0916 lin 修改 增加获取返回值
var
pushIcpSolutionRes
=
await
this
.
pushIcpSolution
(
pushObj
,
needsolution
.
solutionNo
,
pobj
.
appInfo
,
self
);
// // 2020 0806 lin 新增推送
// var reqParams = {
...
...
@@ -87,7 +88,8 @@ class QcCenterOrderService extends AppServiceBase {
appInfo
:
pobj
.
appInfo
}
this
.
utilsPushSve
.
aliBusiness2Delivery
(
reqParams
,
"updateChanceStatus"
);
return
system
.
getResultSuccess
();
//
return
system
.
getResultSuccess
(
pushIcpSolutionRes
);
}
return
res
;
}
...
...
@@ -124,6 +126,7 @@ class QcCenterOrderService extends AppServiceBase {
var
a
=
await
self
.
reqCenterOrderApi
(
reqObj3
);
//保存用户确认方案url
}
}
return
confirmRes
;
}
}
}
...
...
center-channel/app/base/service/impl/trademark/toolSve.js
View file @
1b9b2984
...
...
@@ -111,6 +111,13 @@ class ToolService extends AppServiceBase {
var
plaintext
=
bytes
.
toString
(
cryptoJS
.
enc
.
Utf8
);
return
system
.
getResultSuccess
(
plaintext
);
}
//智能推荐、犬类保护获取尼斯分类
async
getNclByCode
(
pobj
,
req
){
var
reqUrl
=
settings
.
centerOrderUrl
()
+
"action/tmOrder/springBoard"
;
var
result
=
await
this
.
restPostUrl
(
pobj
,
reqUrl
);
return
result
;
}
}
module
.
exports
=
ToolService
;
center-channel/app/base/service/impl/utilsSve/utilsDeliverSve.js
View file @
1b9b2984
...
...
@@ -110,7 +110,7 @@ class utilsDeliverSve extends AppServiceBase{
let
result
=
await
this
.
restPostUrl
(
pobj
,
url
);
if
(
result
.
status
!==
0
){
return
system
.
getResult
(
null
,
'更新失败'
)
return
system
.
getResult
(
null
,
result
.
msg
)
}
//获取订单
let
orderUrl
=
this
.
centerOrderUrl
+
"action/order/springBoard"
;
...
...
center-channel/app/base/service/impl/utilsSve/utilsNeedSve.js
View file @
1b9b2984
This diff is collapsed.
Click to expand it.
center-channel/app/base/service/impl/utilsSve/utilsOrderSve.js
View file @
1b9b2984
...
...
@@ -697,7 +697,7 @@ class UtilsOrderService extends AppServiceBase {
}
async
wxPayNotify
(
parmas
,
client_ip
)
{
// 微信宝回调
async
wxPayNotify
(
parmas
,
client_ip
)
{
// 微信宝回调
----暂时不用
try
{
//日志记录
this
.
logCtl
.
info
({
...
...
@@ -797,6 +797,107 @@ class UtilsOrderService extends AppServiceBase {
}
}
async
channelPayNotify
(
params
,
client_ip
){
//渠道订单支付通知
try
{
this
.
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道订单支付回调参数信息"
,
op
:
"service/impl/utilsSve/utilsOrderSve.js/channelPayNotify"
,
content
:
JSON
.
stringify
(
params
),
clientIp
:
client_ip
||
""
});
if
(
!
params
.
appkey
){
return
system
.
getResult
(
null
,
'appKey can be not null'
)
}
if
(
!
params
.
orderNo
){
return
system
.
getResult
(
null
,
'orderNo can be not null'
)
}
if
(
!
params
.
payTotalSum
){
return
system
.
getResult
(
null
,
'payTotalSum can be not null'
)
}
if
(
!
params
.
signature
){
return
system
.
getResult
(
null
,
'signature can be not null'
)
}
if
(
!
params
.
payType
){
return
system
.
getResult
(
null
,
'payType can be not null'
)
}
if
(
!
params
.
payOrderNo
){
return
system
.
getResult
(
null
,
'payOrderNo can be not null'
)
}
let
url
=
this
.
centerAppUrl
+
'payment/paymentApi/getAppInfoByAppKey'
;
let
appInfoRt
=
await
this
.
restPostUrl
({
appKey
:
params
.
appkey
},
url
);
if
(
appInfoRt
.
status
!=
0
){
appInfoRt
.
msg
=
appInfoRt
.
msg
+
",100270"
;
return
appInfoRt
;
}
let
singStr
=
params
.
appkey
+
params
.
orderNo
+
params
.
payTotalSum
+
appInfoRt
.
data
.
uapp_secret
let
sign
=
md5
(
singStr
).
toUpperCase
();
if
(
sign
!=
params
.
signature
){
return
system
.
getResultFail
(
-
1
,
'验证签名失败'
)
}
var
appInfo
=
appInfoRt
.
data
;
// 拿锁
var
locker
=
await
this
.
cacheManager
[
"TlPayLocker"
].
enter
(
params
.
orderNo
);
console
.
log
(
"拿锁结果"
,
locker
)
if
(
!
locker
||
locker
!=
"1"
)
{
this
.
logCtl
.
info
({
appid
:
appInfoRt
.
data
.
uappId
,
appkey
:
""
,
op
:
"service/impl/utilsSve/utilsOrderSve.js/aliPayNotify"
,
content
:
"参数="
+
JSON
.
stringify
(
params
),
clientIp
:
params
.
client_ip
||
""
,
optitle
:
"阿里回调操作频繁---太频繁了,太频繁了"
});
return
system
.
getResultFail
(
-
200
,
"阿里回调操作频繁---太频繁了,太频繁了"
);
}
params
.
appInfo
=
{
uapp_id
:
appInfo
.
uapp_id
};
params
.
pay_type
=
params
.
payType
;
//修改并返回订单支付状态,创建收款单
// 这里修改了order_info的状态(status/paytime等)
var
orderUrl
=
this
.
centerOrderUrl
+
"opaction/opPayOrder/receivePayCallBackNotifyByChannel"
;
var
opOrderResult
=
await
this
.
restPostUrl
(
params
,
orderUrl
);
if
(
opOrderResult
.
status
!=
0
)
{
opOrderResult
.
data
=
null
;
return
opOrderResult
;
}
opOrderResult
.
data
.
appInfo
=
{
uapp_id
:
appInfo
.
uapp_id
,
uapp_key
:
appInfo
.
uapp_key
,
app_code
:
appInfo
.
app_code
,
app_name
:
appInfo
.
app_name
};
opOrderResult
.
data
.
userInfo
=
{
channel_userid
:
opOrderResult
.
data
.
order_info
.
channelUserId
,
channel_username
:
opOrderResult
.
data
.
order_info
.
channelUserId
,
channel_nickname
:
opOrderResult
.
data
.
order_info
.
channelUserId
};
opOrderResult
.
data
.
orderNo
=
params
.
orderNo
;
opOrderResult
.
data
.
order_info
.
pay_flow_no
=
params
.
trade_no
||
""
;
// 2020 0704 lin 新增 推送fq必填字段
opOrderResult
.
data
.
order_info
.
pay_channel
=
params
.
payType
==
'wx'
?
'微信'
:
'支付宝'
;
//付款方式
opOrderResult
.
data
.
order_info
.
pay_time
=
params
.
payTime
;
//付款时间
opOrderResult
.
data
.
order_info
.
pay_payer_bank_no
=
params
.
buyer_email
||
""
;
//付款账号
opOrderResult
.
data
.
order_contact
=
opOrderResult
.
data
.
delivery_content
.
orderContact
;
var
pobj
=
{
appInfo
:
opOrderResult
.
data
.
appInfo
,
actionBody
:
opOrderResult
.
data
}
// 推送
this
.
utilsPushSve
.
pushBusInfo
(
pobj
,
"pushOrder"
,
0
);
opOrderResult
.
data
=
null
;
return
opOrderResult
;
}
catch
(
e
)
{
await
this
.
cacheManager
[
"TlPayLocker"
].
release
(
params
.
orderNo
);
this
.
logCtl
.
error
({
optitle
:
"回调处理订单---error异常"
,
op
:
"center-app/app/base/service/impl/utilsSve/utilstlbankSve.js/opBackNotify"
,
content
:
"参数="
+
JSON
.
stringify
(
params
)
+
",error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
return
system
.
getResultFail
(
-
200
,
e
.
stack
);
}
}
async
tmAccept
(
pobj
)
{
// 2020 0828 lin 新增 ali商标交易 创建订单接口
try
{
...
...
center-channel/app/base/service/impl/utilsSve/utilsProductSve.js
View file @
1b9b2984
...
...
@@ -19,6 +19,9 @@ class UtilsProductService extends AppServiceBase {
if
(
!
actionBody
.
pathCode
)
{
return
system
.
getResult
(
null
,
"actionBody.pathCode can not be empty,100330"
);
}
if
(
actionBody
.
name
){
pobj
.
actionBody
.
productName
=
actionBody
.
name
;
}
pobj
.
actionBody
.
pathCode
=
"/"
+
actionBody
.
pathCode
+
"/"
;
var
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
return
await
this
.
restPostUrl
(
pobj
,
url
);
...
...
@@ -77,6 +80,43 @@ class UtilsProductService extends AppServiceBase {
let
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
return
await
this
.
restPostUrl
(
pobj
,
url
);
}
/**
* 获取推荐产品
* @param pobj
* @param actionBody
* @returns {Promise<void>}
*/
async
getProductRecommend
(
pobj
,
actionBody
){
const
type
=
actionBody
.
type
;
if
(
!
type
){
return
system
.
getResult
(
-
1
,
'type can be not empty'
)
}
switch
(
type
)
{
case
1
:
if
(
!
actionBody
.
companyName
){
return
system
.
getResultFail
(
-
1
,
'companyName can be not empty'
)
}
break
;
case
2
:
if
(
!
actionBody
.
companyName
){
return
system
.
getResultFail
(
-
1
,
'companyName can be not empty'
)
}
if
(
!
actionBody
.
productCode
){
return
system
.
getResultFail
(
-
1
,
'productCode can be not empty'
)
}
break
;
case
3
:
if
(
!
actionBody
.
productCode
){
return
system
.
getResultFail
(
-
1
,
'productCode can be not empty'
)
}
break
;
default
:
return
system
.
getResultFail
(
-
1
,
'type 参数错误'
);
}
let
url
=
settings
.
centerAppUrl
()
+
"action/opProduct/springBoard"
;
return
await
this
.
restPostUrl
(
pobj
,
url
);
}
}
module
.
exports
=
UtilsProductService
;
center-channel/app/base/system.js
View file @
1b9b2984
...
...
@@ -172,7 +172,15 @@ class System {
data
:
data
||
null
,
};
}
// 2020 0916 lin 新增返回格式 成功status为1
static
getResultRedisQueueSuccess
(
data
,
okmsg
=
"success"
)
{
return
{
status
:
1
,
msg
:
okmsg
,
data
:
data
||
null
,
};
}
/**
* 请求返回成功 自定义
* @param {*} data 操作成功返回的数据
...
...
center-channel/app/base/utils/aliyunClient.js
View file @
1b9b2984
...
...
@@ -53,7 +53,7 @@ class aliyunClient {
reqAliclient
.
apiVersion
=
obj
.
apiVersion
;
}
var
res
=
await
reqAliclient
.
request
(
action
,
reqbody
,
{
timeout
:
3000
,
// default 3000 ms
timeout
:
10000
,
// default 3000 ms 2020 0916 lin修改3000为10000,原因ConfirmIcpIntention BizIds 超过5条会超时
formatAction
:
true
,
// default true, format the action to Action
formatParams
:
true
,
// default true, format the parameter name to first letter upper case
method
:
'GET'
,
// set the http method, default is GET
...
...
center-channel/app/config/routes/api.js
View file @
1b9b2984
...
...
@@ -199,6 +199,31 @@ module.exports = function (app) {
}
});
app
.
use
(
'/orderNotify/channelPayNotify'
,
async
function
(
req
,
res
)
{
try
{
var
client_ip
=
system
.
get_client_ip
(
req
);
var
result
=
await
utilsOrderSve
.
channelPayNotify
(
req
.
body
,
client_ip
);
logCtl
.
info
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道支付订单通知 api层"
,
op
:
"center-channel/orderNotify/channelPayNotify"
,
content
:
"支付回调处理结果:"
+
JSON
.
stringify
(
result
),
clientIp
:
client_ip
||
""
});
if
(
result
.
status
!=
0
)
{
return
res
.
end
(
"FAIL"
);
}
return
res
.
end
(
"success"
);
}
catch
(
e
)
{
var
client_ip
=
system
.
get_client_ip
(
req
);
logCtl
.
error
({
optitle
:
(
new
Date
()).
Format
(
"yyyy-MM-dd hh:mm:ss"
)
+
"渠道订单支付通知处理异常"
,
op
:
"center-channel/orderNotify/channelPayNotify"
,
content
:
"回调参数:req="
+
JSON
.
stringify
(
req
)
+
"error:"
+
e
.
stack
,
clientIp
:
client_ip
||
""
});
}
});
app
.
all
(
"/web/*"
,
async
function
(
req
,
res
,
next
)
{
var
result
=
system
.
getResult
(
null
,
"req method must is post"
);
...
...
@@ -248,7 +273,8 @@ module.exports = function (app) {
"getNeedListUser"
,
"manualEvaluation"
,
"diagnosisInfo"
,
"check"
,
"enterpriseInfo"
,
"diagnosisDetail"
,
"submitIcpIntention"
,
"queryIntentionList"
,
"confirmIcpIntention"
,
"tmAccept"
,
"tmStatus"
"tmAccept"
,
"tmStatus"
,
"needBatchUpload"
];
if
(
lst
.
indexOf
(
req
.
body
.
actionType
)
>=
0
)
{
var
userpin
=
req
.
headers
[
"userpin"
]
||
""
;
...
...
center-channel/app/config/routes/doc.js
View file @
1b9b2984
...
...
@@ -6,14 +6,14 @@ var marked = require("marked");
module
.
exports
=
function
(
app
)
{
app
.
get
(
'/doc'
,
function
(
req
,
res
)
{
if
(
!
req
.
query
.
key
)
{
res
.
send
(
"文件不存在!!!"
);
return
;
}
if
(
req
.
query
.
key
!=
"doc12345789"
)
{
res
.
send
(
"文件不存在!!!!!!"
);
return
;
}
//
if (!req.query.key) {
//
res.send("文件不存在!!!");
//
return;
//
}
//
if (req.query.key != "doc12345789") {
//
res.send("文件不存在!!!!!!");
//
return;
//
}
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc/README.md"
;
fs
.
readFile
(
path
,
function
(
err
,
data
)
{
if
(
err
)
{
...
...
@@ -43,16 +43,16 @@ module.exports = function (app) {
});
app
.
get
(
'/doc/api/:forder/:fileName'
,
function
(
req
,
res
)
{
if
(
req
.
url
!=
"/doc/api/platform/fgbusinesschance.md"
)
{
if
(
!
req
.
query
.
key
)
{
res
.
send
(
"文件不存在!!!"
);
return
;
}
if
(
req
.
query
.
key
!=
"doc12345789"
)
{
res
.
send
(
"文件不存在!!!!!!"
);
return
;
}
}
//
if (req.url != "/doc/api/platform/fgbusinesschance.md") {
//
if (!req.query.key) {
//
res.send("文件不存在!!!");
//
return;
//
}
//
if (req.query.key != "doc12345789") {
//
res.send("文件不存在!!!!!!");
//
return;
//
}
//
}
var
forder
=
req
.
params
[
"forder"
];
var
fileName
=
req
.
params
[
"fileName"
]
||
"README.md"
;
var
path
=
process
.
cwd
()
+
"/app/front/entry/public/apidoc"
;
...
...
center-channel/app/front/entry/public/apidoc/platform/order.md
View file @
1b9b2984
...
...
@@ -380,7 +380,10 @@
"appkey":"202001170336",// Y appkey
"orderNo":"TM26202002271337mkgN",// Y 订单号
"payTotalSum":300.00,// Y 订单金额
"signature":"DC18F27EFC1A251AFC5F2FCF36ABE6FA"
"signature":"DC18F27EFC1A251AFC5F2FCF36ABE6FA",
"payType":"", //支付方式 wx alipay
"payTime":"",// 支付时间
"payOrderNo":""// 支付订单流水号
}
```
...
...
center-channel/app/front/entry/public/apidoc/platform/product.md
View file @
1b9b2984
...
...
@@ -3,6 +3,7 @@
1.
[
产品列表-根据产品大类获取
](
#getProductListByOneCode
)
1.
[
产品列表-根据产品二类获取
](
#getProductListByTwoCode
)
1.
[
产品详情
](
#getProductDetail
)
1.
[
产品推荐
](
#getProductRecommend
)
## **<a name="getProductListByOneCode"> 产品列表-根据产品大类编码获取</a>**
...
...
@@ -15,7 +16,8 @@
```
javascript
{
"pathCode"
:
"sbfu"
//查询的路径:大类code
"pathCode"
:
"sbfu"
,
//查询的路径:大类code
"productName"
:
"工商"
// N 产品名称
}
```
...
...
@@ -178,4 +180,173 @@
"requestId"
:
"5913fc3ae97a402e93330c2d488f1f7e"
}
```
## **<a name="getProductRecommend"> 产品推荐</a>**
[
返回到目录
](
#menu
)
##### URL
[
/action/product/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 渠道执行的类型 actionType:getProductRecommend
```
javascript
{
"companyName"
:
"科技部测试"
,
// N 公司名称
"productCode"
:
"gszc"
,
// N 产品code
"type"
:
2
//Y 1只查公司的推荐(company_name Y),2公司+产品(product_code Y company_name Y),3只查询产品(product_code Y)
}
```
#### 返回结果 0为成功,否则为失败
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"data"
:
[
{
"uapp_id"
:
26
,
//平台id--显示不用
"path_code"
:
"/sbfu/sbzc/"
,
//产品路径编码--显示不用
"path_name"
:
"/商标服务/商标注册/"
,
//产品路径名称--显示不用
"item_code"
:
"zzsbzc"
,
//产品code
"item_name"
:
"商标注册【自助申请】"
,
//产品名称
"channel_item_code"
:
"zzsbzc"
,
//渠道产品code
"channel_item_name"
:
"商标注册【自助申请】"
,
//渠道产品名称
"pic_url"
:
"http://gsb-zc.oss-cn-beijing.aliyuncs.com/zc_qft_pi15755163570461.png"
,
//产品的图片
"product_short_desc"
:
"适合熟知商标注册流程的企业用户"
,
//产品的介绍
"product_desc"
:
"[
\"
自己检索商标,准备官方所需注册材料
\"
,
\"
提交迅速,及时反馈
\"
,
\"
全流程跟踪,掌握申请进度
\"
]"
,
//产品的描述列表
"desc_url"
:
null
,
//产品介绍图片地址
"icon_url"
:
null
,
//产品的icon
"productType_id"
:
2
,
//产品类型id--显示用不到
"sort"
:
1
,
//排序
"pay_code"
:
"zzsbzc-1"
,
//支付价格code
"service_charge"
:
30
,
//服务费
"public_expense"
:
270
,
//官费
"price"
:
300
,
//价格
"price_type"
:
"mj"
,
//定价类型:mj:每件,mc:每次,mt:每天,my:每月,mn:每年,qj:区间
"price_type_name"
:
"每件"
,
//定价类型名称
"price_desc"
:
"每件(10小项)"
,
//定价描述
"min_qty"
:
null
,
//区间最小值
"max_qty"
:
null
//区间最大值
},
{
"product_id"
:
85
,
"uapp_id"
:
38
,
"path_code"
:
"/sbfu/sbzc/"
,
"path_name"
:
"/商标服务/商标注册/"
,
"item_code"
:
"zzsbzc"
,
"item_name"
:
"商标自助注册"
,
"channel_item_code"
:
"zzsbzc"
,
"channel_item_name"
:
"商标自助注册"
,
"pic_url"
:
""
,
"product_short_desc"
:
"适合熟知商标注册流程的企业用户"
,
"product_desc"
:
"[
\"
自己检索商标,准备官方所需注册材料
\"
,
\"
提交迅速,及时反馈
\"
,
\"
全流程跟踪,掌握申请进度
\"
]"
,
"desc_url"
:
null
,
"icon_url"
:
null
,
"productType_id"
:
63
,
"sort"
:
1
,
"pay_code"
:
"zzsbzc-1"
,
"service_charge"
:
30
,
"public_expense"
:
270
,
"price"
:
300
,
"price_type"
:
"mj"
,
"price_type_name"
:
"件"
,
"price_desc"
:
"每件(10小项)"
,
"additions_desc"
:
null
,
"min_qty"
:
null
,
"max_qty"
:
null
,
"pc_pic_url"
:
"https://mall-image.gongsibao.com/images/202007/thumb_img/2737_thumb_P_1593555482849.jpg"
,
"pc_desc_url"
:
""
},
{
"product_id"
:
86
,
"uapp_id"
:
38
,
"path_code"
:
"/sbfu/sbzc/"
,
"path_name"
:
"/商标服务/商标注册/"
,
"item_code"
:
"fzsbzc"
,
"item_name"
:
"商标辅助注册"
,
"channel_item_code"
:
"fzsbzc"
,
"channel_item_name"
:
"商标辅助注册"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_3644155747559516320191016635163223322.png"
,
"product_short_desc"
:
null
,
"product_desc"
:
"[
\"
由专业代理人帮您检索分析,成功率高
\"
,
\"
为您优化注册方案,全方位保护
\"
,
\"
代理人全流程服务,24小时拿到官方申请号
\"
]"
,
"desc_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_8071566301043178201920193723178zc_11341557742471246201913181431246代理人.jpg"
,
"icon_url"
:
null
,
"productType_id"
:
63
,
"sort"
:
3
,
"pay_code"
:
"fzsbzc-1"
,
"service_charge"
:
429
,
"public_expense"
:
270
,
"price"
:
699
,
"price_type"
:
"mj"
,
"price_type_name"
:
"件"
,
"price_desc"
:
"每件(10小项)"
,
"additions_desc"
:
null
,
"min_qty"
:
null
,
"max_qty"
:
null
,
"pc_pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_3644155747559516320191016635163223322.png"
,
"pc_desc_url"
:
"[{
\"
descUrl
\"
:
\"
https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_8071566301043178201920193723178zc_11341557742471246201913181431246%E4%BB%A3%E7%90%86%E4%BA%BA.jpg
\"
,
\"
sort
\"
:1}]"
},
{
"product_id"
:
87
,
"uapp_id"
:
38
,
"path_code"
:
"/sbfu/sbzc/"
,
"path_name"
:
"/商标服务/商标注册/"
,
"item_code"
:
"dbsbzc"
,
"item_name"
:
"商标担保注册"
,
"channel_item_code"
:
"dbsbzc"
,
"channel_item_name"
:
"商标担保注册"
,
"pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_108415573041498072019816299807WX20190508-162857@2x.png"
,
"product_short_desc"
:
null
,
"product_desc"
:
"[
\"
专业代理人精准评估,风险共担
\"
,
\"
注册不成功,全额退款
\"
,
\"
24小时拿到官方申请号
\"
]"
,
"desc_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_2594155775291371220191321833712%E9%8E%B7%E5%91%AC%E7%B9%9A%E9%8D%9F%E5%97%98%E7%88%A3%E5%A8%89%E3%84%A5%E5%94%BD.jpg"
,
"icon_url"
:
null
,
"productType_id"
:
63
,
"sort"
:
5
,
"pay_code"
:
"dbsbzc-1"
,
"service_charge"
:
1029
,
"public_expense"
:
270
,
"price"
:
1299
,
"price_type"
:
"mj"
,
"price_type_name"
:
"件"
,
"price_desc"
:
"每件(10小项)"
,
"additions_desc"
:
null
,
"min_qty"
:
null
,
"max_qty"
:
null
,
"pc_pic_url"
:
"https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_108415573041498072019816299807WX20190508-162857@2x.png"
,
"pc_desc_url"
:
"[{
\"
descUrl
\"
:
\"
https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_2594155775291371220191321833712%E9%8E%B7%E5%91%AC%E7%B9%9A%E9%8D%9F%E5%97%98%E7%88%A3%E5%A8%89%E3%84%A5%E5%94%BD.jpg
\"
,
\"
sort
\"
:1}]"
},
{
"product_id"
:
116
,
"uapp_id"
:
38
,
"path_code"
:
"/gsfu/zcxg/"
,
"path_name"
:
"/工商服务/注册相关/"
,
"item_code"
:
"gsdb"
,
"item_name"
:
"登报"
,
"channel_item_code"
:
"gsdb"
,
"channel_item_name"
:
"登报"
,
"pic_url"
:
""
,
"product_short_desc"
:
"公司宝 登报申明 公司注销声明/公司减资声明/原件丢失声明等"
,
"product_desc"
:
""
,
"desc_url"
:
null
,
"icon_url"
:
null
,
"productType_id"
:
60
,
"sort"
:
0
,
"pay_code"
:
"bjgsdb-1"
,
"service_charge"
:
0
,
"public_expense"
:
0
,
"price"
:
200
,
"price_type"
:
"mj"
,
"price_type_name"
:
"件"
,
"price_desc"
:
"北京"
,
"additions_desc"
:
null
,
"min_qty"
:
null
,
"max_qty"
:
null
,
"pc_pic_url"
:
"https://mall-image.gongsibao.com/images/202001/thumb_img/0_thumb_P_1579138397162.jpg"
,
"pc_desc_url"
:
"[{
\"
descUrl
\"
:
\"
https://mall-image.gongsibao.com/uploads/image/2019/08/19/783aebc5718a573eff1e267b88fc1f8a.jpg
\"
,
\"
sort
\"
:1}]"
}
],
"requestId"
:
"c39ee8a924074904b1694dd3bf2d6c4b"
}
```
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment