2012-11-30 17 views
3

所以我有一個應用程序,有一個消耗品購買,從我讀了多一點工作涉及到在服務器上堅持一些信息的條款。你在哪裏更新應用程序購買中的消耗品的服務器?

我不明白的是在哪裏更新成功購買服務器?它是

  • (void)completeTransaction:(SKPaymentTransaction *)transaction;

?? ??

如果確實是上面提到的功能,那麼這只是一個打網絡電話和更新服務器服務器的問題嗎?我只是想了解最佳做法,並希望得到任何幫助。

很多關於

回答

1

我不知道這是否算作一個有效的答案,但你也許應該看看this文章。 博客帖子是從2010年開始的,所以可以說它已經過時了!但我認爲值得一看,並且提供的示例(completeTransaction方法實現)也應該有效。

讓應用程序購買上班比實際上要痛苦得多。

1

做,做它

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
... 
case SKPaymentTransactionStatePurchased: 
case SKPaymentTransactionStateRestored: 
     [self sendReceiptToServerAndValidateFurther:transaction.receiptData 

它是那麼只有一個webcall到服務器端腳本,可以與iTunes驗證接收和更新其DB /發送數據

btw一些服務器php

function itunes_verify2($receiptData,$sandboxed) { 
    //itunes store url -- sandbox or not :) 
    $itunes_storeURL = "https://buy.itunes.apple.com/verifyReceipt"; 
    if($sandboxed == true) { 
     $itunes_storeURL = "https://sandbox.itunes.apple.com/verifyReceipt"; 
    } 

    log_action('itunes_verify2 using ' . $itunes_storeURL); 

    $post = array("receipt-data" => $receiptData); 
    $postData = json_encode($post); 

    $responseData = post_doRequest($itunes_storeURL, $postData); 
    $response = json_decode($responseData); 

    if($responseArray->status == 0) { 
     return "YES"; 
    } else { 
     log_action('failed to get status ok from ' . $reponseData); 
     return "NO"; 
    } 
} 
相關問題