2013-10-22 25 views
13

Sunucu tarafında Mac App Store için uygulama içi satın alımların (sarf malzemeleri olarak adlandırılır) alındığını doğrularım.Mac App Store Tüketici makbuzları, sunucu tarafında doğrulama için boş in_app hash değerine sahiptir

{ 
     "status"=>0, 
     "environment"=>"Production", 
     "receipt" => 
     { 
      "receipt_type" => "Production", 
      "adam_id"=>410628904, 
      "bundle_id" => "com.company.product", 
      "application_version"=>"1.0.0", 
      "download_id"=>002141541230420, 
      "request_date"=>"2013-10-22 07:53:11 Etc/GMT", 
      "request_date_ms"=>"1382428391914", 
      "request_date_pst"=>"2013-10-22 00:53:11 America/Los_Angeles", 
      "original_purchase_date"=>"2011-08-22 06:05:47 Etc/GMT", 
      "original_purchase_date_ms"=>"1313993147000", 
      "original_purchase_date_pst"=>"2011-08-21 23:05:47 America/Los_Angeles", 
      "original_application_version"=>"1.0.0", 
      "in_app"=> [ 
      { 
       "quantity"=>"1", 
       "product_id"=>"com.company.product.mac_consumable", 
       "transaction_id"=>"9123912391231", 
       "original_transaction_id"=>"51881235936908", 
       "purchase_date"=>"2013-10-22 07:52:06 Etc/GMT", 
       "purchase_date_ms"=>"1382428326000", 
       "purchase_date_pst"=>"2013-10-22 00:52:06 America/Los_Angeles", 
       "original_purchase_date"=>"2013-10-22 07:52:06 Etc/GMT", 
       "original_purchase_date_ms"=>"1382428326000", 
       "original_purchase_date_pst"=>"2013-10-22 00:52:06 America/Los_Angeles", 
       "bundle_id"=>"com.company.product" 
       } 
     ] 
     } 
    } 

Ama bazen in_app karma seti olmadan bilgi geri almak: Apple'ın sunucularından tepkisi genellikle aşağıdaki benzer

{ 
     "status"=>0, 
     "environment"=>"Production", 
     "receipt" => 
     { 
      "receipt_type" => "Production", 
      "adam_id"=>312621904, 
      "bundle_id" => "com.company.product", 
      "application_version"=>"1.0.0", 
      "download_id"=>002141541230420, 
      "request_date"=>"2013-10-22 07:53:11 Etc/GMT", 
      "request_date_ms"=>"1382428391914", 
      "request_date_pst"=>"2013-10-22 00:53:11 America/Los_Angeles", 
      "original_purchase_date"=>"2011-08-22 06:05:47 Etc/GMT", 
      "original_purchase_date_ms"=>"1313993147000", 
      "original_purchase_date_pst"=>"2011-08-21 23:05:47 America/Los_Angeles", 
      "original_application_version"=>"1.0.0", 
      "in_app"=> [] 
     } 
    } 

bu makbuzları anlamına mı geçersiz var? In_app alanı her zaman doldurulmalı mı? Ya da bu makbuzlar da geçerli kabul edilmeli ve in_app bilgileri neden boş mu?

+0

Aynı sorunu yaşıyorum! Ne olduğunu bilmem gerek! İşlemin elma tarafı reddedilmiş olabilir mi? Mesaj göstermeli miyim? Bu durum gerçekleştiğinde hesabımın kredilendirileceği görünmüyor. – Steeve17

cevap

3

Bu, makbuzların geçersiz olduğu anlamına mı geliyor?

Hayır, status değeri the docs göre makbuz geçerli olduğu anlamına gelir, 0 olduğunu. Yalnızca uygulama içi satın alma "alt makbuzları" içermiyor.

In_app alanı her zaman doldurulan mı?

Hayır, bir makbuzun uygulama içi satın alma içermemesi mümkündür.


Yani görünüşte senin sorunun nedense makbuz için uygulaması arka uca gönderiyor bunu bekliyoruz rağmen, bir uygulama içi satın alma için bilgi içermez olmasıdır.

Bir uygulama içi satın alma işlemi "satın alınmış" duruma girdiğinde, müşteri cihazında makbuz güncel olmalıdır - makbuzu bu işlemden önce sunucunuza göndermeyi denemediğinizden emin olmalısınız.

Denemeyi düşünmeniz gereken diğer bir şey SKReceiptRefreshRequest (yalnızca 10.9'dan beri kullanılabilir) - bazı kenar koşullarında makbuz güncel olmayabilir ve makbuzun gönderilmesini göndermeden önce güncellemesini beklemeniz gerekir arka ucuna iste.

+0

Bu boş makbuzlar için herhangi bir nakit para almıyoruz, bu nedenle bu emirlerin elmaları elmalarıyla gerçekleşmedi. Bu vakayı yeniden üretebilmeyi isterim, çünkü izlemek bizim için ilginç olabilir. Kredi kartı bilgileri geçersiz mi yoksa yetersiz bakiye olabilir mi? – Steeve17

+2

@ Steeve17 Aynı problemimiz var. "In_app \" olduğunda ne olduğunu tam olarak anlayabildiniz mi: []? Herhangi bir ipucu için çok minnettar olurdum. – tyrex