V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
xap
V2EX  ›  iDev

[苹果开发,内购问题] 十月二号,我的后台统计某 iap 数量是 20,苹果 ITC 后台 Sales and Trends 给出来的只有 5,少了 15 条,会是神马情况?

  •  
  •   xap · 2014-10-08 20:46:22 +08:00 · 4099 次点击
    这是一个创建于 3493 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的后台有去苹果验证服务器校验,校验成功后,再写入MySQL的

    有人说是黑卡。。难道黑卡也能通过苹果服务器的校验?



    校验代码如下:
    {code}
    //服务器二次验证代码
    function getReceiptData($receipt, $isSandbox = false)
    {
    if ($isSandbox) {
    $endpoint = 'https://sandbox.itunes.apple.com/verifyReceipt';
    }
    else {
    $endpoint = 'https://buy.itunes.apple.com/verifyReceipt';
    }

    $postData = json_encode(
    array('receipt-data' => $receipt)
    );

    $ch = curl_init($endpoint);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //这两行一定要加,不加会报SSL 错误
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //这两行一定要加,不加会报SSL 错误

    $response = curl_exec($ch);
    $errno = curl_errno($ch);
    $errmsg = curl_error($ch);
    curl_close($ch);
    //判断时候出错,抛出异常
    if ($errno != 0) {
    throw new Exception($errmsg, $errno);
    }

    $data = json_decode($response);
    //判断返回的数据是否是对象
    if (!is_object($data)) {
    throw new Exception('Invalid response data');
    }
    //判断购买时候成功
    if (!isset($data->status) || $data->status != 0) {
    throw new Exception('Invalid receipt');
    }

    //返回产品的信息
    return array(
    'quantity' => $data->receipt->quantity,
    'product_id' => $data->receipt->product_id,
    'transaction_id' => $data->receipt->transaction_id,
    'purchase_date' => $data->receipt->purchase_date,
    // 'app_item_id' => $data->receipt->app_item_id,
    'bid' => $data->receipt->bid,
    'bvrs' => $data->receipt->bvrs
    );
    }
    {code}
    6 条回复    2014-10-10 20:15:34 +08:00
    zongwan
        1
    zongwan  
       2014-10-08 20:51:17 +08:00
    可能是淘宝 帮助购买
    然后 电邮 取消订单
    zongwan
        2
    zongwan  
       2014-10-08 20:53:30 +08:00
    一般查下货币种类 就有谱了
    xap
        3
    xap  
    OP
       2014-10-08 20:53:51 +08:00
    @zongwan 有检查 Sales and Trends 里没发现取消的订单
    仅在10-6的日报里发现units有条-1的,是另外一个iap的订单 —— 这应该是取消订单的记录吧?
    xap
        4
    xap  
    OP
       2014-10-10 14:23:14 +08:00
    把 response 记录下来分析

    嘛德发棵!
    有了一个惊人的发现

    {
    "receipt":{"original_purchase_date_pst":"2012-07-12 05:54:35 America/Los_Angeles", "purchase_date_ms":"1342097675882", "original_transaction_id":"170000029449420", "original_purchase_date_ms":"1342097675882", "app_item_id":"450542233", "transaction_id":"170000029449420", "quantity":"1", "bvrs":"1.4", "version_external_identifier":"9051236", "bid":"com.zeptolab.ctrexperiments", "product_id":"com.zeptolab.ctrbonus.superpower1", "purchase_date":"2012-07-12 12:54:35 Etc/GMT", "purchase_date_pst":"2012-07-12 05:54:35 America/Los_Angeles", "original_purchase_date":"2012-07-12 12:54:35 Etc/GMT", "item_id":"534185042"}, "status":0}




    肿么是2012年7月的数据?
    再仔细一看
    product_id也不是我的吖!
    bid也不是我的吖!

    我勒个去
    居然是这样的

    赶紧在上面那个函数的代码里增加这两个值的校验……


    这些人太坏了,真黑!
    gamexg
        5
    gamexg  
       2014-10-10 19:40:29 +08:00
    还有这个玩法啊。
    xap
        6
    xap  
    OP
       2014-10-10 20:15:34 +08:00
    @gamexg 是吖,太崩溃了
    检查了一下paydata
    发现上线以来,共110条内购,有40条都是这个重复支付的……

    于是再增加了一个检查:paydata是否重复
    之前只检查payid重复是不够的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1138 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:45 · PVG 01:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.