2013-10-22 10 views
13

Tôi xác minh việc nhận hàng trong ứng dụng (được gọi là hàng tiêu dùng) cho Mac App Store ở phía máy chủ. Câu trả lời từ các máy chủ của Apple thường trông như thế này:Biên lai tiêu thụ trong Cửa hàng ứng dụng Mac có băm in_app trống trên xác thực phía máy chủ

{ 
     "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" 
       } 
     ] 
     } 
    } 

Nhưng đôi khi chúng tôi nhận lại thông tin mà không tập in_app băm:

{ 
     "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"=> [] 
     } 
    } 

Điều này có nghĩa các khoản thu được không hợp lệ? Trường in_app có nên luôn được điền không? Hoặc những hóa đơn đó có được coi là hợp lệ hay không và tại sao thông tin in_app trống?

+0

Tôi có cùng một vấn đề! Tôi cần biết chuyện gì đã xảy ra! Có thể nào giao dịch bị từ chối không? Tôi có nên hiển thị tin nhắn không? Tài khoản của tôi dường như không được ghi có khi điều này xảy ra. – Steeve17

Trả lời

3

Điều này có nghĩa là biên nhận không hợp lệ?

Không, giá trị status0, theo số the docs nghĩa là biên nhận hợp lệ. Nó chỉ không chứa bất kỳ mua hàng trong ứng dụng "phụ thu".

Trường in_app có nên được điền không?

Không, có thể hóa đơn không chứa bất kỳ giao dịch mua hàng trong ứng dụng nào.


Vì vậy, vấn đề của bạn là vì lý do nào đó mà ứng dụng của bạn gửi tới chương trình phụ trợ của bạn không chứa thông tin cho mua hàng trong ứng dụng, mặc dù bạn mong đợi.

Khi giao dịch mua hàng trong ứng dụng chuyển sang trạng thái "đã mua", biên nhận phải được cập nhật trên thiết bị khách - bạn phải đảm bảo rằng bạn không cố gửi biên lai đến máy chủ của mình trước khi điều này xảy ra.

Một điều khác cần xem xét là SKReceiptRefreshRequest (chỉ khả dụng kể từ 10.9) - trong một số điều kiện, biên nhận có thể không được cập nhật và bạn cần phải đợi để cập nhật trước khi gửi yêu cầu nhận lại yêu cầu tới chương trình phụ trợ của bạn.

+0

Chúng tôi không nhận được bất kỳ khoản tiền nào cho những hóa đơn trống từ quả táo, vì vậy rõ ràng những đơn đặt hàng này không đi qua phía bên quả táo. Tôi vẫn muốn có thể tái tạo trường hợp này, vì chúng tôi có thể theo dõi. Nó có thể là chi tiết thẻ tín dụng không hợp lệ hoặc không đủ tiền? – Steeve17

+2

@ Steeve17 Chúng tôi có cùng một vấn đề. Bạn đã có thể hiểu chính xác những gì sẽ xảy ra khi "in_app \": []? Sẽ rất biết ơn vì bất kỳ gợi ý nào. – tyrex

Các vấn đề liên quan