using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; using PottingMobileSDK.MiniJSON; using UnityEngine; #if UNITY_IOS public class PottingMobileServicesiOS : PottingMobileServicesBase { [DllImport("__Internal")] private static extern void channelPayGetAppVersion(int channel); [DllImport("__Internal")] private static extern void configSync(string appVer, int lastVer); [DllImport("__Internal")] private static extern void dedeemConsume(string redeemcode); [DllImport("__Internal")] private static extern void userLogin(string id, int type, string name, string icon); [DllImport("__Internal")] private static extern void userSync(string archive, int archiveVersion); [DllImport("__Internal")] private static extern void configServerInfo(); [DllImport("__Internal")] private static extern void userHeartbeat(); [DllImport("__Internal")] private static extern void userOrder(string goodsid); [DllImport("__Internal")] private static extern void userResumepurchase(); [DllImport("__Internal")] private static extern void userConsume(string goodsid, string orderId); [DllImport("__Internal")] private static extern void userQueryOrder(string goodsid, string orderId); [DllImport("__Internal")] private static extern void userUploadScore(int score, string info, string rankingid); [DllImport("__Internal")] private static extern void userGetUserRank(string rankingid); //获取活动 [DllImport("__Internal")] private static extern void getActivitiesWithChannel(string channel, string language); //获取公告 [DllImport("__Internal")] private static extern void getGameAnoncementsWithChannel(string channel, string version, string language); //根据渠道兑换码兑换接口 [DllImport("__Internal")] private static extern void redeemConsume(string redeemCode, string channel); [DllImport("__Internal")] private static extern void redeemUserConsume(string redeemCode, string channel,string clientId); [DllImport("__Internal")] private static extern void FeedBackSubmit(string msg, string connect, string docInfo); [DllImport("__Internal")] private static extern void overseaPayAppleValidate(string receipt, string appleOrderId, string sku, string skuType, string price, string actId); [DllImport("__Internal")] private static extern void gamekeyinfoUpload(string info); static PottingMobileServicesiOS() { InitManager(); } /** * 获取当前游戏,渠道的最新版本 * 返回结果无加密 * * @param channel 渠道 */ public static void _channelPayGetAppVersion(int channel) { channelPayGetAppVersion(channel); } /** * 获取服务器配置 * appver:如果不需要根据版本判断可以串0 * lastver:每次全新获取传0 * 返回结果加密 * @param appVer * @param lastVer */ public static void _configSync(string appVer, int lastVer) { configSync(appVer,lastVer); } /** * 兑换码兑换接口 * * @param redeemcode 兑换码 */ public static void _dedeemConsume(string redeemcode) { dedeemConsume(redeemcode); } /** * 登录接口 * * @param id 设备ID 或者第三方登录平台的ID * @param type 登录类型 * @param name 用户昵称 * @param icon 用户头像链接 */ public static void _userLogin(string id, int type, string name, string icon) { userLogin(id,type,name,icon); } /** * 获取(提交)存档到服务器 * 1.每次启动游戏优先获取存档 * 2.当有需要更新的存档时提交服务器 * 提交存档时服务器会默认覆盖以前的存档不会做其他判断 * 请求需要签名,返回数据有加密 * * @param archive * @param archiveVersion */ public static void _userSync(string archive, int archiveVersion) { userSync(archive,archiveVersion); } /** * 心跳检测,判断当前客户端登陆是否有效 * 请求需要签名,返回数据无加密 */ public static void _userHeartbeat() { userHeartbeat(); } /** * 恢复购买,查看已完成的所有订单,以及消耗状态 * 请求需要签名,返回结果有加密 */ public static void _userResumepurchase() { userResumepurchase(); } /** * 订单消耗 * 请求需要签名,返回结果有加密 * * @param goodsid 商品ID * @param orderId 订单ID */ public static void _userConsume(string goodsid, string orderId) { userConsume(goodsid,orderId); } /** * 查询单个订单的状态 * 用来处理非消耗性商品,判断订单是否支付完成 * 返回结果有加密 * * @param goodsid 商品ID * @param orderId 订单ID */ public static void _userQueryOrder(string goodsid, string orderId) { userQueryOrder(goodsid,orderId); } /** * 提交用户分数 * 返回用户排行榜信息,返回结果无加密 * * @param score 名次 * @param info 排名信息 * @param rankingid 排名ID */ public static void _userUploadScore(int score, string info, string rankingid) { userUploadScore(score,info,rankingid); } /** * 获取用户自己的排名 * * @param rankingid 排行榜ID */ public static void _userGetUserRank(string rankingid) { userGetUserRank(rankingid); } /// /// 获取活动 /// /// 渠道 /// 语言 public static void _getActivitiesWithChannel(string channel,string language) { getActivitiesWithChannel(channel,language); } /// /// 获取公告 /// /// /// /// public static void _getGameAnoncementsWithChannel(string channel, string version, string language) { getGameAnoncementsWithChannel(channel, version,language); } /// /// 根据渠道兑换码兑换接口 /// /// /// public static void _redeemConsume(string redeemCode, string channel) { redeemConsume(redeemCode, channel); } /// /// 根据渠道兑换码兑换接口,需要用户登录 /// /// /// /// public static void _redeemUserConsume(string redeemCode, string channel,string clientId) { redeemUserConsume(redeemCode, channel,clientId); } public static void _FeedBackSubmit(string msg, string connect, string docInfo) { FeedBackSubmit(msg, connect, docInfo); } public static void _PayValidate(string payToken, string orderId, string sku, string price, int skuType, string actId) { overseaPayAppleValidate(payToken, orderId, sku, price, skuType+"", actId); } /// /// 上报关键数据 /// /// public static void _GameInfoUpload (Dictionary lable) { var jsonString = Json.Serialize(lable); gamekeyinfoUpload(jsonString); } public static void _Serverinfo() { configServerInfo(); } } #endif