2012-01-27 24 views
5

Khi tôi mua một mua trước đó "Auto-tái tạo Subscriptions" trong ứng dụng của tôi, nó nóiKhôi phục mua đăng ký cho Auto-tái tạo Subscriptions

You're currently subscribed to this... 

Khi tôi nhấp OK, trong các đại biểu của thanh toán hàng đợi ..

- (void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
    for (SKPaymentTransaction * transaction in transactions) 
    { 
     switch (transaction.transactionState) 
     { 
      case SKPaymentTransactionStatePurchased: 
       [self completeTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed: 
       [self failedTransaction:transaction]; // Why this is called? 
       break; 
      case SKPaymentTransactionStateRestored: 
       [self restoreTransaction:transaction]; 
      default: 
       break; 
     } 
    } 
} 

Các transaction.transactionState trở là SKPaymentTransactionStateFailed instea d của SKPaymentTransactionStateRestored, có bình thường không?

Vậy làm cách nào để xử lý chính xác?

Trả lời

1

Tôi có cùng vấn đề và tôi không nghĩ có bất kỳ cách nào để phân biệt sự kiện này với các lỗi khác (nó trả về mã lỗi SKErrorPaymentCancelled). Tôi nghĩ cách duy nhất bạn có thể xử lý là bằng cách có nút "Khôi phục mua hàng" và gọi [[SKPaymentQueue defaultQueue] restoreCompletedTransactions] khi người dùng nhấn nút đó.

3

Thực ra, bạn không thể xác định xem người dùng đã đăng ký chưa. Bạn cần có Đăng ký nút mà người dùng mới sử dụng để đăng ký và Khôi phục nút cho người dùng đã đăng ký.

Và khi bạn nhận được SKPaymentTransactionStateFailed, bạn có thể hiển thị thông báo đề xuất sử dụng nút Khôi phục trong trường hợp người dùng đã đăng ký.

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