Appearance
微信小游戏接入配置
WARNING
如果您还没有完成接口的调用,请参考API接入文档:小游戏接口调用
通过微信小游戏SDK后,游戏登录使用的是微信登录,暂不支持其他登录方式。
Android平台支付支持米大师虚拟支付(游戏币或道具直购模式)和跳转客服窗口支付;iOS平台只支持跳转客服窗口支付。
添加渠道配置
在接入微信小游戏时,初始化参数中,需要传入当前微信小游戏渠道的渠道号。 所以,我们需要现在SDK后台添加好渠道配置。 在游戏控制台->配置管理->渠道配置菜单中,添加一个渠道:

配置说明:
渠道商: 选择【微信小游戏】或【微信小游戏(官网互通)】;
渠道号: 生成或输入渠道号,并将该参数给到研发这边,传入初始化接口;
支持平台: 选择H5;
互通渠道号: 如果渠道商选择了【微信小游戏(官网互通)】 ,那需要将互通渠道号和官网渠道上的互通渠道号设置为同一值;
渠道别名: 随意互通配置
在同时有微信小游戏和原生官网包时, 我们通常会有互通的需求: 让官网包中微信登录的账号和微信小游戏账号进行互通。
如果有互通需求,我们需要按如下步骤进行配置:
点击查看【互通】配置
1、 客户端使用互通版本的SDK
import u8sdk from './u8sdk/u8sdk-adapter-wechat-with-xsdk'2、 后台参数配置
在U8后台->游戏控制台->渠道配置中,把微信小游戏渠道配置参数中,做如下调整:
在渠道配置中, 覆盖当前渠道商配置中通用的脚本类和登录认证地址,按如下截图设置:

| 配置信息 | 值 | 说明 |
|---|---|---|
| 脚本类 | 固定值:com.u8.server.sdk.wechatminigame.XSDK | 去官网SDK进行登录认证,而不直接去小游戏平台验证 |
| 登录认证地址 | http://{XSDK URL}/user/v1/check | {XSDK URL}替换为官网SDK服务端URL地址 |
在渠道配置中,补充官网SDK后台该游戏的appID、appKey等参数:
服务端参数:

| 配置信息 | 值 | 说明 |
|---|---|---|
| AppID | 微信小游戏的AppID | 微信小游戏后台-》开发者信息 |
| AppSecret | 微信小游戏的AppSecret | 微信小游戏后台-》开发者信息 |
| PayID | 官网SDK后台该游戏的appID | 无 |
| PayKey | 官网SDK后台该游戏的appKey | 无 |
客户端参数:

| 配置信息 | 值 | 说明 |
|---|---|---|
| 官网SDK URL | 官网SDK服务端URL | 小游戏初始化时会请求获取这些参数 |
| 官网SDK AppID | 官网SDK后台该游戏的appID | 无 |
| 官网SDK AppKey | 官网SDK后台该游戏的appKey | 无 |
3、互通渠道号配置
WARNING
在聚合SDK中,不同渠道的账号是隔离的。 如果需要让两个渠道配置的账号互通,需要把这两个渠道配置上的互通渠道号设置为一样的数字(非0)。
而且请注意: 互通渠道号需要在一开始就设置,如果一开始某个渠道没配置互通渠道号,并且已经有玩家数据了, 则需要通过数据库先将u8_user表中该渠道玩家记录中的uniChannel字段更新为互通渠道号后(并清理redis缓存),再配置新渠道的互通渠道号,否则会导致数据紊乱。
为了让官网SDK原生渠道(比如Android平台)和微信小游戏渠道的账号可以互通, 我们需要将微信小游戏渠道和原生官网渠道的互通渠道号设置为同一个,比如99。
后续如果增加新的官网SDK渠道,比如iOS平台的官网渠道配置,也可以将iOS渠道配置上的互通渠道号设置为同样的99,这样Android、iOS、小游戏三个渠道配置的账号都可以互通。

微信小游戏参数申请
上面渠道配置添加后, 需要在渠道参数配置中,按说明配置好微信小游戏对应的参数,比如小游戏appID、secretKey等。 这些参数可以在微信小游戏控制台、微信公众平台、微信开放平台、微信商户平台获取:
1、 如果您还没有注册微信小游戏,可以参考: 微信小游戏申请注册指南;
2、 如果要和官网SDK的微信账号互通,微信小游戏的账号必须使用UnionID, 需要在微信开放平台绑定关联微信小游戏,之后微信小游戏的登录授权才会返回UnionID; (目前不管互通还是非互通,微信小游戏都使用UnionID,防止后续有互通需求,使用OpenID无法实现)
3、 微信iOS采用跳转客服窗口支付,所以需要开通小游戏的消息推送功能, 在小游戏控制台-》管理-》开发管理-》开发设置页签中,消息推送模块中进行配置:
| 配置信息 | 值 | 说明 |
|---|---|---|
| URL(服务器地址) | https://{U8Server URL}/partner/pay/wechat/mini/notify/渠道号 | 将{U8Server URL}替换为正式的U8Server URL,将{渠道号}替换为微信小游戏的渠道号 |
| Token(令牌) | 自定义 | 记录好,需要配置到SDK后台渠道配置中 |
| EncodingAESKey(消息加密密钥) | 自定义 | 记录好,需要配置到SDK后台渠道配置中 |
| 消息加密方式 | 安全模式 | 微信返回的消息会进行加密 |
| 数据格式 | JSON | 微信返回的消息格式为JSON格式 |
4、 跳转到客服窗口后, 会给玩家发送充值小卡片, 玩家点击时,使用的是微信公众号支付方式(JSAPI)进行支付。 所以需要在微信商户平台开通 JSPAI支付 权限,并在其支付授权目录中添加SDK服务的访问URL;
5、 为了支持微信公众号支付方式,需要将JSAPI支付中关联到微信公众号(必须是企业服务号),在JSAPI支付-》AppID账号管理中, 关联服务号的AppID;
6、 微信服务号控制台-》设置与开发-》账号设置-》功能设置中, 在JS接口安全域名和网页授权域名中,都添加上SDK服务的访问URL;添加界面中,将MP_verify开头的文件,放在Web服务能访问到的服务器上,并进行配置。 比如Nginx配置:
java
server{
listen 80;
server_name uniapi.u8sdk.com; #绑定域名
index index.htm index.html index.php; #默认文件
location /MP_verify_GGdU0Ek9aCHWv457.txt {
root /www/mp_verify;
}
location / {
root html;
#默认都代理到web_app对应的U8Server上
proxy_pass http://u8sdk_server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forward-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
}
}