appstore防代充的一些想法

简介: 点击这里可以查看代充相关的报道, 利用苹果商店规则漏洞,出现了一个灰色地下产业链>>   用户点击选择要充值的物品时,先向后台服务器发起一个创建订单号的请求,然后再向appstore发起购买商品的请求。

点击这里可以查看代充相关的报道, 利用苹果商店规则漏洞,出现了一个灰色地下产业链>>

 

用户点击选择要充值的物品时,先向后台服务器发起一个创建订单号的请求,然后再向appstore发起购买商品的请求。在回调函数productsRequest中,根据SKProductsResponse中的priceLocale属性来获取当前所处的国家/地区

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
{
    NSLog(@"-----------收到产品反馈信息--------------");
    NSArray *myProduct = response.products;
    NSLog(@"产品Product ID:%@",response.invalidProductIdentifiers);
    NSLog(@"产品付费数量: %d", [myProduct count]);
   
    for(SKProduct *product in myProduct){
        NSLog(@"product info");
        NSLog(@"SKProduct 描述信息%@", [product description]);
        NSLog(@"产品标题 %@" , product.localizedTitle);
        NSLog(@"产品描述信息: %@" , product.localizedDescription);
        NSLog(@"价格: %@" , product.price);
        NSLog(@"Product id: %@" , product.productIdentifier);

        NSLocale* storeLocale = product.priceLocale;
        NSString * storeCountry = (NSString*)CFLocaleGetValue((CFLocaleRef)storeLocale, kCFLocaleCountryCode);
        NSLog(@"Store Country = %@", storeCountry);  
    }
}

这里可以进行一些初步的验证,非白名单的国家/地区将被禁止购买。

 

但实际上却发现最近俄罗斯退款特别严重,也就意味着上述的判断在实际代充防范中没有起到预期的作用,它是如何绕过的呢?目前猜测的可能是,先将appstore的国家切换为中国大陆并将帐号的登录状态退出,在支付时弹出输入用户名密码中,它输入一个新注册的俄罗斯注册的appstore帐号(帐号里不能有余额,不然是不允许切换国家的,如果有余额想清空要么买东西用掉要么就打电话让苹果工作人员手工清理干净)然后通过卢布进行支付,之后再一次性批量申请退款。卢布,大家都知道跌的比较厉害,再者新创建的帐号一定程度上能避免一个帐号多次退款可能失败的情况。摆明了是空白掏白狼,再者伟大的某淘对此也不太过问,法律上目前为止对这种行为也没有进行什么有效的约束,这个地下产业的确很庞大

 

代充对appstore手游市场的伤害是巨大的,开发商/运营商在比较糟糕的情况下坏账可高达50%,对这种行为不太清楚业界是否有厂商已经将这个比例控制在一个很小的范围之内了。因为信息不对称,苹果是不开放充值订单相关的任何数据信息,也就很难定位到底是哪台设备或者哪个角色名是使用代充的(正常玩家的退款我觉得应该是要去接受的)。

 

既然苹果那边是走不下去,目前能想到的方案就是通过ip记录和分析来进行判定了,比如经常登录的ip有哪些,但是突然冒出来一个很特殊的ip进行了充值行为,但没有消费行为,而经常消费的ip跟充值ip对应不上,那么它就极有可能就是代充获得的元宝。当然规则还有很多,也是不断要进行完美的,这是一个长期的过程。对于这种帐号,可以采用直接封mac设备的登录,让该设备无法登录游戏,同时在登录游戏时给出相应的提示,并且与关联的游戏帐号也立马冻结并记录在案。想做到这一点,就要在每一个向后台发送的请求的接口上都带上尽可能多的信息,比如未登录之前,要获取它的设备型号、操作系统版本、唯一标识(之前是mac,ios7+后只能采用IDFA了,使用IDFA想通过审核就只能注明在游戏内投放了广告并在很明显的地方告知苹果)等信息,登录之后就要再多传入是哪款游戏、哪个区、角色名及角色ID等相关信息。

 

但IP有一个问题,可能不一定准确。比如同事他有一个3G的南京卡,在苏州地区使用时,通过查询ip得到的却是南京地区,这样就可能导致ip判断上不准确了,至于原因,我在网外大致搜索了一下,好像是各运营商分成的问题(利益关系在里面)导致的,至于里面具体的细节有空得向相关的专业朋友请教一下了。

 

其实像腾讯或者支付宝对安全要求较高的公司,它们在这方面的积累已经较为丰富了。比如QQ在异地登录时,它立马就会有相应的提示,银行其实也是类似,连续在不同的地区的ATM上进行数次取款,其实就是一种异常行为了

 

媒体关于黑卡充值的报道:

触乐网独家曝光:手游内购倒爷的“合法”地下产业链

深度分析苹果代充产业链  汇率差+退款造就三线城市千万富翁

目录
相关文章
|
存储 算法 Linux
KSM 【ChatGPT】
KSM 【ChatGPT】
|
JavaScript 小程序
picker bindchange="bindPickerChange" 点击事件
picker bindchange="bindPickerChange" 点击事件
482 1
|
应用服务中间件 网络安全 nginx
nginx开启ssl报错: [emerg] "server" directive is not allowed here ...
nginx开启ssl报错: [emerg] "server" directive is not allowed here ...
1034 0
|
Ubuntu Linux
Ubuntu安装搜狗输入法
Ubuntu安装搜狗输入法
812 0
Ubuntu安装搜狗输入法
「TypeScript」你必须要知道的 TS 高级技能点 —— Utility Types
「TypeScript」你必须要知道的 TS 高级技能点 —— Utility Types
|
Java
异步编程 - 06 基于JDK中的Future实现异步编程(中)_CompletableFuture源码解析
异步编程 - 06 基于JDK中的Future实现异步编程(中)_CompletableFuture源码解析
228 0
|
存储 NoSQL 安全
Redis 设计规范
Redis 设计规范
427 0
|
分布式计算 Java 大数据
【Scala】(一)Scala 概述及安装环境部署
【Scala】(一)Scala 概述及安装环境部署
421 0
【Scala】(一)Scala 概述及安装环境部署