Files
netease-bedrock-wiki/mcguide/27-网络游戏/课程9:服务器上线/第3节:商业化操作.md
Xunzoua 65ee3b5ebc 修改了商业化操作,新增了教学配置游戏ID的部分 商业化操作中的130行原本有bug,把.md写成html了,改了
修改了商业化操作,新增了教学配置游戏ID的部分
错别字
添加白名单ip部分现代化修改
入驻申请部分现代化修改
2025-06-08 22:39:50 +08:00

149 lines
7.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/syh1.b9bdf6e5.png
hard: 入门
time: 20分钟
---
# 商业化流程
网络服中要用钻石、绿宝石购买的商品的话需要走商品审核流程提审通过才能将商品正式上架。另外商品需要在游戏中生效需配合官方的“商城”插件neteaseShop
### 商品提审
- 在开发者平台中的“PE商品管理”添加商品。
![1568016399843](./images/syh1.png)
![1568016399843](./images/syh2.png)
- 正确填写商品的各项基本信息,填写完成后点击“保存”
![1568016399843](./images/syh3.png)
其中”实现指令“填写的是开发者自己设定的指令每次购买将执行该指令1次。
![1568016399843](./images/syh11.png)
“首充内容“控制的是玩家首次购买该商品时的发货奖励,如有需要,请将”是否有首充内容“勾选为”是“。
”首充实现指令“填写的是开发者自己设定的指令玩家首次购买时将执行该指令1次。
![1568016399843](./images/syh12.png)
- 在“PE商品管理——查看详情——库存编辑”分页处提交审核
![1568016399843](./images/syh4.png)
- **审核通过**的商品将出现在“PE商品管理——查看详情——橱窗编辑”分页点击“上架”可让货品在客户端中显示未通过审核的商品无法在橱窗编辑分页展示
![1568016399843](./images/syh5.png)
### MCStudio服务器ID配置
- 此处将会解释服务器游戏ID即46ID的具体配置逻辑。
![syh17.png](./images/syh17.png)
#### 开发者平台部分
- 点击**上架管理**中的“**编辑更新**”,找到**游戏ID**和**是否为测试服**选项。
![syh18.png](./images/syh18.png)
- 其中请将游戏ID**复制**下来,然后编辑**是否为测试服**选项。
> 是否为测试服的配置规则在MCStudio内服务器阶段为**开发阶段**的,配置为**是**;服务器阶段为**审核阶段**的,配置为**否**否则填入后点击完成会检验失败提示“网络游戏ID【46XXX】为正式服无法在开发阶段部署正式服请在开发者平台新建一个测试服提审后进行部署。”或与此相反提示为测试服
#### MCStudio部分
- 进入**网络服开发**页面,点击**更多**,然后点击**服务器配置**,转到**更多**。
- 在**游戏ID**处粘贴你刚才复制的游戏ID如图所示。
- ![syh19.png](./images/syh19.png)
- 点击完成,**重新部署服务器**,即可生效商城签名。
#### 不填写游戏ID是否有影响
影响:**无法获取商品信息**(最重要)以及一些其他影响
#### 一些小建议
服务器创建时MCStudio默认填写游戏ID为0推荐开发者**不要在开发阶段测试商品**,这样可以不动开发者平台的部分(保持“**是否为测试服**”为**是**需要测试商品时用审核阶段服保持游戏ID一直留在这个审核阶段服里就可以了。
### 关联商城插件
> 使用Spigot开服时商城插件的内容请参考[Spigot商城插件详解](../课程10使用Spigot开服/30-Spigot服Demo详解/3-商城Demo详解.md)
- 强烈推荐使用官方商城插件辅助实现发货逻辑。
#### 打开道具商店
- 假如游戏仅支持PE端登录那么可以选择使用引擎自带的道具商店mod.json中配置use_custom_shop为false或者插件自定义的道具商店mod.json中配置use_custom_shop为true
- 假如游戏需要支持PC端的登陆由于PC端引擎没有自带的道具商店必须使用插件自定义的道具商店mod.json中配置use_custom_shop为true
![1568016399843](./images/syh15.png)
#### 实现发货逻辑
- 假如游戏没有特殊的自定义发货逻辑比如说到特定NPC那边对话那么建议选择自动发货mod.json中配置auto_detect为true然后按照商城插件readme.txt中的指引监听【ServerShipItemsEvent】事件处理发货逻辑
- 假如游戏有自定义的特殊发货逻辑那么可以选择不自动发货mod.json中配置auto_detect为false然后按照商城插件readme.txt中的指引使用API【StartShipProcess】触发查询订单的逻辑
![1568016399843](./images/syh13.png)
- 发货逻辑的实现可以参考示例代码位于商城插件服务端mod的【neteaseTestServerSystem.py】中
```Python
class TestServerSystem(ServerSystem):
def __init__(self, namespace, systemName):
self.ListenForEvent("neteaseShop", "neteaseShopDev", "ServerShipItemsEvent", self, self.OnServerShipItems)
def OnServerShipItems(self, args):
'''
收到订单信息,执行发货逻辑
'''
uid = args["uid"]
entities = args["entities"]
#根据 entities 执行发货逻辑,entities参数如下
# entities = [{
# "item_id": 90027446413343740, #商品id仅记录用
# "uuid": "8a0886b5-eeb5-41f0-b517-f65691a2ce3b",# 玩家的唯一编号
# "item_num":1,#玩家购买的道具数量
# "orderid":"1234", #订单id
# "cmd":"test",#实现指令
# "buy_time":1230782400,#购买时间戳
# "group" : 1#道具分类
# },
# {
# "item_id": 90027446413343740,
# "uuid": "8a0886b5-eeb5-41f0-b517-f65691a2ce3b",
# "item_num":1,
# "orderid":"1235",
# "cmd":"test",
# "buy_time":1230782400,
# "group" : 1
# }
# ]
for entity in entities:
itemNum = entity['item_num']
cmd = entity['cmd']
#todo:开发者在需要根据cmd给玩家发货
#发货之后需要通知Apollo发货成功了。
self.ShipSuccess(args)
def ShipSuccess(self,args):
'''
通知Apollo发货成功了
'''
neteaseShopServerSystem = serverApi.GetSystem("neteaseShop", "neteaseShopDev")
neteaseShopServerSystem.ShipOrderSuccess(args)
```
#### 部署商城插件
![1568016399843](./images/syh8.png)
### 测试
#### 移动端测试
- 在[测试版登录器](./第2节PE测试.md)中登录游戏。
- 假如配置了不使用商城插件的自定义道具商店mod.json中配置use_custom_shop为false点击左上角商店入口可以打开引擎的道具商店用测试货币购买对应成功上架的商品。
![1568016399843](./images/syh10.png)
- 假如配置了使用商城插件的自定义道具商店mod.json中配置use_custom_shop为true点击左上角的【打开商店】按钮可以打开插件自定义道具商店点击购买对应成功上架的商品。
- 注意配置了商城插件的自定义道具商店后插件打开商店和PE引擎自己的商店会显示在一起点两个其中任何一个效果都一样。
![1568016399843](./images/syh14.png)
#### PC端测试
- 在McStudio——基岩版服务器——网络服开发选中需要测试的游戏点击"开发测试"可以打开测试客户端
![1568016399843](./images/syh16.png)
- PC端引擎没有道具商店必须配置使用商城插件的自定义道具商店mod.json中配置use_custom_shop为true进入测试客户端后点击左上角的【打开商店】按钮可以打开插件自定义道具商店点击购买对应成功上架的商品。
![1568016399843](./images/syh14.png)
#### McStudio测试
- 在McStudio——基岩版服务器——线上服务器选中需要测试的游戏点击“更多”——“商店”可打开测试商店界面。
![1568016399843](./images/plugin_11.png)
![1568016399843](./images/plugin_12.png)
![1568016399843](./images/plugin_13.png)