Vì vậy, tôi đã thiết lập đăng ký tự động gia hạn cho ứng dụng của mình trong khoảng thời gian 1 tháng, tương đương với 5 phút trong hộp cát. Trong ứng dụng khách hàng tôi đăng ký, gửi biên nhận đến máy chủ của tôi, nó được xác minh và tôi đặt một bản ghi trong cơ sở dữ liệu của tôi mà người dùng này có đăng ký.Cách phát hiện và xác minh gia hạn cho đăng ký tự động gia hạn?
Câu hỏi của tôi là làm cách nào để kiểm tra xem đăng ký này đã được gia hạn chưa? Tôi đã đọc tài liệu và không thể tìm ra tôi nên làm gì.
Đây là nơi tôi cho đến nay:
- Việc tiếp nhận ban đầu mà được gửi đến máy chủ của tôi được xác nhận với một tình trạng
0
, tuyệt vời. Tôi cũng nhận đượclatest_receipt
, mà tôi thay thế trong cơ sở dữ liệu của tôi với biên nhận lâu đời nhất. - Sau 6 phút khi tôi cố gắng xác minh các
latest_receipt
, tôi nhận được tình trạng21006
(nhận hết hạn) và điều này:
{ receipt:
{ original_purchase_date_pst: '2013-08-06 11:58:04 America/Los_Angeles',
unique_identifier: '------------',
original_transaction_id: '----------',
expires_date: '1376129825000',
transaction_id: '------------',
quantity: '1',
product_id: 'subscription',
item_id: '--------',
bid: 'com.--------',
unique_vendor_identifier: '---------',
web_order_line_item_id: '---------',
bvrs: '2.0',
expires_date_formatted: '2013-08-10 10:17:05 Etc/GMT',
purchase_date: '2013-08-10 10:12:05 Etc/GMT',
purchase_date_ms: '1376129525000',
expires_date_formatted_pst: '2013-08-10 03:17:05 America/Los_Angeles',
purchase_date_pst: '2013-08-10 03:12:05 America/Los_Angeles',
original_purchase_date: '2013-08-06 18:58:04 Etc/GMT',
original_purchase_date_ms: '1375815484000' },
latest_expired_receipt_info:
{ original_purchase_date_pst: '2013-08-06 11:58:04 America/Los_Angeles',
unique_identifier: '-------',
original_transaction_id: '-',
expires_date: '1376129825000',
transaction_id: '-',
quantity: '1',
product_id: 'subscription',
item_id: '-',
bid: 'com.-',
unique_vendor_identifier: '--',
web_order_line_item_id: '-',
bvrs: '2.0',
expires_date_formatted: '2013-08-10 10:17:05 Etc/GMT',
purchase_date: '2013-08-10 10:12:05 Etc/GMT',
purchase_date_ms: '1376129525000',
expires_date_formatted_pst: '2013-08-10 03:17:05 America/Los_Angeles',
purchase_date_pst: '2013-08-10 03:12:05 America/Los_Angeles',
original_purchase_date: '2013-08-06 18:58:04 Etc/GMT',
original_purchase_date_ms: '1375815484000' },
status: 21006 }
Yếu tố thứ hai trong mảng từng là latest_receipt_info
, nhưng bây giờ nó latest_EXPIRED_receipt_info
. Dưới đây là những gì tài liệu nói:
Ngoài trường receive_data, phản hồi cũng có thể bao gồm hai trường mới. Nếu thuê bao của người dùng đang hoạt động và được mới bởi một giao dịch diễn ra sau khi nhận máy chủ của bạn gửi đến App Store, lĩnh vực
latest_receipt
bao gồm một cơ sở-64 nhận được mã hóa cho việc đổi mới cuối cùng cho đăng ký này . Dữ liệu được giải mã cho biên nhận mới này cũng được cung cấp trong trườnglatest_expired_receipt_info
. Máy chủ của bạn có thể sử dụng biên lai mới này để duy trì hồ sơ về việc gia hạn gần đây nhất.
Vì vậy, nếu phụ đã được gia hạn kể từ khi máy chủ của tôi đã kiểm tra cuối cùng, việc tiếp nhận được giải mã cho việc đổi mới phải ở trong latest_expired_receipt_info
. Trong đối tượng đó, expires_date
cũng giống như trong biên lai gốc expires_date
.
Cái quái gì? Tôi chỉ muốn kiểm tra xem phụ có hoạt động không. Bất cứ ai có thể giải thích bằng những từ đơn giản làm thế nào để tôi làm điều đó?
Cảm ơn bạn!
Và câu hỏi trước - tại sao hộp cát không tự động gia hạn đăng ký? Hoặc làm cách nào để tự làm mới? Ngay bây giờ biên lai hết hạn sau 5 phút và đó là tất cả. Tôi cần kiểm tra mã của tôi bằng cách nào đó. –
Trong hộp cát, bạn đang làm việc với các tài khoản thử nghiệm. Bạn không thể sử dụng tài khoản thử nghiệm để đăng nhập vào iTunes và tắt tự động gia hạn đăng ký của bạn. Để cho phép bạn kiểm tra tình huống, khi đăng ký tự động gia hạn của bạn đã hết hạn và không hoạt động, Apple chỉ thực hiện 5 lần gia hạn trong hộp cát (nghĩa là bạn có giao dịch ban đầu và 5 lần gia hạn sau đó -> tổng thời lượng đăng ký là 6 lần đăng ký của bạn chiều dài). Điều này sẽ làm mới sau 8 giờ. Hoặc bạn có thể sử dụng tài khoản thử nghiệm khác. –
Ok, tôi đã tìm ra. Dưới đây là giải thích đơn giản hơn: http://stackoverflow.com/questions/8033673/ios-sandbox-environment-auto-renewal-subscription –