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上进行数次取款,其实就是一种异常行为了

 

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

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

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

目录
相关文章
|
移动开发 数据安全/隐私保护 iOS开发
|
存储 iOS开发 开发者
ios AppStore 上架流程(Xcode11.5)
ios AppStore 上架流程(Xcode11.5)
|
存储 数据安全/隐私保护 iOS开发
|
Linux 数据安全/隐私保护 iOS开发
|
Linux API 数据安全/隐私保护
最全iOS 应用上架流程(提交到AppStore)
最全iOS 应用上架流程(提交到AppStore)
|
Linux API 数据安全/隐私保护
最全iOS 应用上架流程(提交到AppStore)
1、苹果开发者账号(公司已有可以不用申请,需要开通开发者功能,每年 99 美元) 2、开发好的APP
|
存储 网络安全 iOS开发
iOS AppStore上架流程图文详解
1、首先得注册Apple Developer的开发者账号,最后如果要上架苹果商店,这个账号是要交年费的,核算下来大概600多元人民币。 2、接下来要登录Apple Developer网站,点击“Account”栏目
|
存储 Linux 网络安全
iOS AppStore上架流程图文详解2021版 (上)
到了2021年,虽然网上也有大牛写过很多IOS App上架流程资料,但随着苹果发布机制的微调有些已经过时了。我就趁着这次刚刚发布成功的鲜活经验,记录下来,做一下补充。
iOS AppStore上架流程图文详解2021版 (上)
|
编解码 数据安全/隐私保护 Android开发
iOS上架及ipa包上传到AppStore
开发uniapp的app的时候,需要ios证书进行打包,打包后还需要将打包后的ipa上架,这样普通的使用者才能安装,ios应用无法像安卓那样将ipa文件发布在自己的服务器,然后安装,ios需要将ipa上传到app store上架,用户才能安装。 因此,我们上架的前提是需要一个打包的证书和证书profile文件,假如你还不清楚如何申请ios证书,可以参考这篇文章
363 0
iOS上架及ipa包上传到AppStore
|
开发者 iOS开发
iOS开发—发布到appstore
iOS开发—发布到appstore
iOS开发—发布到appstore