MSSDK

SDK 文档


Unity-渠道接入

<p>[TOC]</p> <h2>版本记录</h2> <table> <thead> <tr> <th style="text-align: left;">版本号</th> <th style="text-align: left;">时间</th> <th style="text-align: left;">修改内容</th> <th style="text-align: left;">责任人</th> <th style="text-align: left;">备注</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">V1.5.1</td> <td style="text-align: left;">2019/12/25</td> <td style="text-align: left;">Unity 渠道相关内容添加</td> <td style="text-align: left;">buck.yu</td> <td style="text-align: left;">无</td> </tr> </tbody> </table> <h2>文档介绍</h2> <blockquote> <p>该文档主要包含渠道相关接口的接入说明和引导。</p> </blockquote> <h2>全局回调接口</h2> <p>SDK在某些事情发生的时候,会告知游戏,游戏根据自己的业务做相依的逻辑处理。 在初始化完成后,设置全局回调监听</p> <blockquote> <p>公版和渠道的全局回调接入一样,该方法只需要接入一次</p> </blockquote> <p>```c#</p> <p>using iDreamsky.MSLD; ...... void Start() { ...... MSLDSDK.SetEventCallBack(OnSDKEventCallBack); } // 全局事件回调 void OnSDKEventCallBack(MSLDSDK.Event eventID, object eventObj) { MSLDInfoWindow.Info(&quot;收到SDK全局事件回调:&quot; + eventID); switch (eventID) { case MSLDSDK.Event.SwitchAccount: // SDK内部发生账号切换时,会收到此回调 break; case MSLDSDK.Event.LogOut: // SDK内部发生账号登出时,会收到此回调 break; case MSLDSDK.Event.RedeliveryOrder: // SDK内部发生补单时,会收到此回调。eventObj为支付结果结构。 break; case MSLDSDK.Event.PolicyMinorsPaymentLimit: //V1.4.2 添加,(&quot;未成年充值限制,当前不允许充值&quot;); break; case MSLDSDK.Event.PolicyMinorsPlayTimeLimit: //V1.4.2 添加,(&quot;未成年人游戏时间已到上限&quot;);<br /> break; case MSLDSDK.Event.PolicyVisitorPaymentLimit: //V1.4.2 添加,(&quot;游客账号不允许充值&quot;); break; case MSLDSDK.Event.PolicyVisitorPlayTimeLimit: //V1.4.2 添加,(&quot;游客账号游戏时间已到上限&quot;); break; case MSLDSDK.Event.AccountInfoUpdated: //V1.5.1 添加,用户信息有更新时,会及时触发 MSLDInfoWindow.Info(&quot;用户信息更新:&quot; + eventObj ==null?&quot;null&quot;:((MSLDAccountNew)eventObj).desc()); break; default: //&quot;未知回调:id =&quot; + eventID); break; } }</p> <pre><code> ## 功能集成 &gt; 调用接口前,都需要先完成sdk初始化操作 ### 1.1 渠道登陆 拉起渠道登陆界面,登陆成功返回用户信息。 &gt; 部分渠道,用返回键可以关闭登陆界面,不会给到游戏回调,注意不要把登陆按钮隐藏了。 ```c# using iDreamsky.MSLD.channel; MSLDChannelManager.Login(null, (MSLDErrorCode code, string msg, MSLDAccount account) =&gt; { if (code == MSLDErrorCode.Success) { MSLDInfoWindow.Info("渠道登录成功! account:" + account.desc()); } else if (code == MSLDErrorCode.UIUserClose) { MSLDInfoWindow.Info("用户取消渠道登录! code = " + code + " msg = " + msg); } else { MSLDInfoWindow.Info("渠道登录失败! code:" + code + " msg:" + msg); } });</code></pre> <h3>1.2 渠道支付</h3> <p>拉起渠道支付界面</p> <p>```c# using iDreamsky.MSLD.channel; using iDreamsky.MSLD.Payment;</p> <p>public void OnClickPurchase() { MSLDProduct product = new MSLDProduct(&quot;0&quot;, &quot;test01&quot;, &quot;测试商品1&quot;, &quot;1.23&quot;, &quot;人民币&quot; ,&quot;&quot;); MSLDCPInfo cpInfo = new MSLDCPInfo(&quot;pid1234&quot;, &quot;mchNO123456&quot;, cpData,clientInfo , &quot;remarkXXXXX&quot;, &quot;subjectXXXXX&quot;, &quot;attachXXX&quot;); MSLDPayMethod payMethod = SelectPanel.SelectPanel; iDreamsky.MSLD.channel.MSLDChannelManager.Pay(product,cpInfo,payMethod, onPayCallback); } private void onPayCallback(MSLDErrorCode code, string msg, MSLDPayResult order){ if (MSLDErrorCode.Success == code) { MSLDInfoWindow.Info(&quot;购买完成 msg = &quot; + msg + &quot;order: &quot; + order.desc()); // 道具下发,要放到全局回调补单,支付结果中进行 或 通过服务器下发 } else { MSLDInfoWindow.Info(&quot;购买失败! code = &quot; + code + &quot; msg = &quot; + msg); } }</p> <pre><code> ### 1.3 渠道登出 调用渠道登出接口 &gt; 调用登出接口前,需要通过 '1.10' 判断是否支持 ```c# using iDreamsky.MSLD.channel; MSLDChannelManager.Logout((MSLDErrorCode code, string msg) =&gt; { if (MSLDErrorCode.Success == code) { MSLDInfoWindow.Info("渠道登出成功"); } else { MSLDInfoWindow.Info("渠道登出失败! code = " + code + " msg = " + msg); } });</code></pre> <h3>1.4 渠道切换账号</h3> <p>调用渠道切换账号功能</p> <blockquote> <p>调用该接口前,需要通过 '1.9' 判断是否支持 </p> </blockquote> <p>```c# using iDreamsky.MSLD.channel;</p> <p>MSLDChannelManager.SwitchAccount((MSLDErrorCode code, string msg, MSLDAccount account) =&gt; { if (code == MSLDErrorCode.Success) { MSLDInfoWindow.Info(&quot;渠道切换用户成功! account:&quot; + account.desc()); } else if (code == MSLDErrorCode.UIUserClose) { MSLDInfoWindow.Info(&quot;用户取消渠道切换用户! code = &quot; + code + &quot; msg = &quot; + msg); } else { MSLDInfoWindow.Info(&quot;渠道切换用户失败! code:&quot; + code + &quot; msg:&quot; + msg); } });</p> <pre><code> ### 1.5 渠道退出游戏 调用渠道退出 &gt; 调用该接口前,需要通过 '1.11' 判断是否支持 ```c# using iDreamsky.MSLD.channel; MSLDChannelManager.Exit((MSLDErrorCode code, string msg) =&gt; { if (MSLDErrorCode.Success == code) { MSLDInfoWindow.Info("渠道退出成功"); Application.Quit(); } else { MSLDInfoWindow.Info("渠道退出失败! code = " + code + " msg = " + msg); } });</code></pre> <h3>1.6 显示渠道悬浮窗</h3> <p>调用渠道悬浮窗接口,没有悬浮窗的渠道,调用不显示</p> <p>```c# using iDreamsky.MSLD.channel;</p> <p>MSLDChannelManager.ShowFloatView((MSLDErrorCode code, string msg) =&gt; { if (MSLDErrorCode.Success == code) { MSLDInfoWindow.Info(&quot;渠道打开悬浮窗成功&quot;); } else { MSLDInfoWindow.Info(&quot;渠道打开悬浮窗失败! code = &quot; + code + &quot; msg = &quot; + msg); } });</p> <pre><code> ### 1.7 隐藏渠道悬浮窗 隐藏渠道悬浮窗 ```c# using iDreamsky.MSLD.channel; MSLDChannelManager.DmissFloatView((MSLDErrorCode code, string msg) =&gt; { if (MSLDErrorCode.Success == code) { MSLDInfoWindow.Info("渠道关闭悬浮窗成功"); } else { MSLDInfoWindow.Info("渠道关闭悬浮窗失败! code = " + code + " msg = " + msg); } });</code></pre> <h3>1.8 上报游戏信息</h3> <p>上报游戏信息到渠道</p> <blockquote> <p>该接口必须所有类型(ChannelReportType)都要正确调用,否者影响支付等接口</p> </blockquote> <p>```c# using iDreamsky.MSLD.channel; using iDreamsky.MSLD;</p> <p>MSLDChannelReport report = new MSLDChannelReport(); report.reportType =&quot;&quot; + ChannelReportType.RoleCreate; // 上报类型 report.roleId = &quot;role_id_test&quot;; report.roleLevel = &quot;role_level_23&quot;; report.roleName = &quot;role_name_test&quot;; report.roleCreateTime = &quot;2019&quot;; report.serverId = &quot;role_name_server_id&quot;; report.serverName = &quot;server_name&quot;; report.combatValue = &quot;100&quot;; report.pointValue = &quot;50&quot;; report.pointBalance = &quot;50&quot;; report.pointVip = &quot;50&quot;; report.pointParty = &quot;50&quot;; report.zoneId = &quot;123&quot;; report.zoneName = &quot;&quot;;</p> <p>MSLDChannelManager.Report(report, (MSLDErrorCode code, string msg) =&gt; { if (MSLDErrorCode.Success == code) { MSLDInfoWindow.Info(&quot;渠道上报成功&quot;); } else { MSLDInfoWindow.Info(&quot;渠道上报失败! code = &quot; + code + &quot; msg = &quot; + msg); } });</p> <pre><code> ### 1.9 是否支持切换账号 判断是否支持切换账号 ```c# using iDreamsky.MSLD.channel; bool value = MSLDChannelManager.IsSupportSwitchAccount(); </code></pre> <h3>1.10 是否支持登出</h3> <p>判断是否支持登出</p> <p>```c# using iDreamsky.MSLD.channel;</p> <p>bool value = MSLDChannelManager.IsSupportLogout();</p> <pre><code> ### 1.11 是否支持退出游戏 判断是否支持退出渠道游戏 ```c# using iDreamsky.MSLD.channel; bool value = MSLDChannelManager.IsSupportExit(); </code></pre> <h3>1.12 是否支持获取认证信息</h3> <p>判断是否支持获取认证信息</p> <p>```c# using iDreamsky.MSLD.channel;</p> <p>bool value = MSLDChannelManager.IsSupportGetCertification();</p> <pre><code> ### 1.13 是否支持显示实名认证 判断是否支持实名认证界面 ```c# using iDreamsky.MSLD.channel; bool value = MSLDChannelManager.IsSupportCertification(); </code></pre> <h3>1.14 调用渠道实名认证</h3> <p>显示渠道认证界面</p> <blockquote> <p>调用该接口,需要通过 ‘1.13’ 判断是否支持</p> </blockquote> <p>```c# using iDreamsky.MSLD.channel;</p> <p>MSLDChannelManager.ShowCertificationView((MSLDErrorCode code, string msg, string data) =&gt; { if (code == MSLDErrorCode.Success) { MSLDInfoWindow.Info(&quot;实名认证完成! \ncode = &quot; + code + &quot;\nmsg = &quot; + msg + &quot;\n data = &quot; + data); } else { MSLDInfoWindow.Info(&quot;实名认证失败! \ncode = &quot; + code + &quot;\nmsg = &quot; + msg + &quot;\n data = &quot; + data); } });</p> <pre><code> ### 1.15 获取实名认证信息 成功返回实名认证结果信息,通过type判断。 ```c# public void OnClickLGetCertificationogout() { MSLDChannelManager.GetCertificationInfo((MSLDErrorCode code, string msg, CertificationType type) =&gt; { if(code == MSLDErrorCode.Success){ MSLDInfoWindow.Info("获取渠道认证:" + getCeriftiStr(type)); } else{ MSLDInfoWindow.Info("获取认证结果失败:" + "\ncode = " + code + "\nmsg = " + msg); } }); } private string getCeriftiStr(CertificationType type) { string rstr = "unknow"; switch (type) { case CertificationType.KEY_CHANNEL_CERTIFICATION_UNNAMED: rstr = "未实名认证"; break; case CertificationType.KEY_CHANNEL_CERTIFICATION_CHILDREN: rstr = "已实名认证,用户未成年"; break; case CertificationType.KEY_CHANNEL_CERTIFICATION_ADULT: rstr = "已实名认证,用户已成年"; break; } return rstr + ",type =" + type; } </code></pre>

页面列表

ITEM_HTML