Покупка из приложения с возвратом 0 товаров и недействительнымProductIdentifier - PullRequest
3 голосов
/ 04 августа 2011

Я только что проверил, и мой:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

вернул SKProducstResponse с размером массива продуктов 0. Почему это?Если он не может найти продукт, он должен вернуть 0 правильно?Я проверил идентификатор продукта, и он совпадает с тем, который у меня есть в моем соединении itunes.Проверил идентификатор пакета и он тоже совпадает .. И да, я проверял это на устройстве

ОБНОВЛЕНИЕ:

Я проверял

response.invalidProductIdentifier

и он вернул productID, который я пытался получить.Я просмотрел этот список:

• your app is InApp Purchases enabled? **yes**
• do you have an InApp Purchase test account? **yes**
• the product we offer is marked as "Cleared for Sale"? **yes**
• Did you upload the application to iTunes Connect? **no** (don't think it's necessary since 2011, correct me if I am wrong)
• do you generate and install a provisioning profile for the new "App ID"? **yes**
• Does your project is signed with the new provisioning profile? **yes**
• Are you compiling the project for IOS 3.0 or higher? **yes** 
• Are you using the full product ID when you make a SKProductRequest? ie for example: com.company.sampleapp.productid? **yes**
• Has it been several hours since you added the products to iTunes Connect? **yes**
• Does the contract payment application in the iTunes Connect is complete?  **just submitted it**

Должен ли я иметь действующий оплаченный контракт, чтобы запустить IAP?

Ответы [ 2 ]

5 голосов
/ 04 августа 2011

Ссылаясь на ваш пост:

• Используете ли вы полный идентификатор продукта при оформлении запроса SKProductRequest? т.е. например: com.company.sampleapp.productid? да

На самом деле вам нужно указать именно ту строку (productId), которую вы указали в iTunes Connect в качестве элемента покупки в приложении. Поэтому, если вы указали productId, ваш SKProductRequest должен иметь именно эту строку (без каких-либо com.a.b. ). Если вы указали в iTunes что-то вроде com.a.b.item (что рекомендуется), это то, что вам нужно полностью указать в своем запросе продукта.

EDIT В сообщении In-App-Purchase указывается, что контракт на платные приложения должен быть действительным, чтобы разрешать покупки в приложениях. Так что это может быть причиной вашей проблемы.

1 голос
/ 28 марта 2018

У меня возникла та же проблема, и я решил ее следующим образом:

  1. Перейдите в iTunes connect> Соглашения, налоги и банковское дело
  2. Установите флажок "Платные приложения "контракт
  3. Я настроил Контактная информация , Информация о банке , Налоговая информация
  4. После заполнения вышеуказанной детали статус контракта изменился на «Ожидание»
  5. Для изменения статуса контракта на готовность потребуется около 30 минут

То естьЭто.Теперь я получу список продуктов от следующего делегата.

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse)

Примечание: Перед выполнением вышеуказанных шагов я могу увидеть свой идентификатор продукта в SKProductsResponse.invalidProductIdentifiers в приведенном выше методе делегата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...