2011-06-10 2 views
5

앱이 백그라운드 상태이고 사용자가 아직 로그인하지 않은 상태에서 앱 구매 (샌드 박스 환경)에서 사용자 취소 동작이 발생합니다. 가기 :앱 구매 사용자가 백그라운드에서 앱을 사용하는 동안 tx를 취소합니다. 구입시 tx 상태가 유지됩니다.

는 다음과 같은 과정은 다음과 같습니다 앱 ID가 설정에서 설정되지 않은에서/

  • 사용자가 로그인하지 않은> 스토어
  • 사용자가 클릭 버튼을 구입. 이 전화는 [[SKPaymentQueue defaultQueue] addPayment:payment];
  • 사용자는 즉시 홈 버튼을 미리 나타냅니다 (앱은 배경으로 이동합니다)
  • 구매 결정을 묻는 Storekit 팝업이 나타납니다. 사용자가 취소합니다.
  • 응용 프로그램이 다시 활성화되어 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions을 수신 할 것으로 예상되지만 그렇지는 않습니다. TX는 여전히 주 구매 중입니다.

테스트 사용자가 이미 상점에 로그인 한 경우이 프로세스가 다릅니다. 이 경우 위의 프로세스가 예상대로 작동합니다.

다른 설명 : 위의 단계를 수행 한 후, 실제로 다른 인앱 항목을 구입합니다 (앱 스토어에 로그인하는 것을 포함). 이 후 나는 backgrounding 애플 리케이션을 보냈다 그것을 다시 활성화하고 누락 된 트랜잭션을 삭제합니다.

결론 : 앱이 storekit 콜백의 납품 지연에 저장 결과에 로그인 된 배경과없는 동안 지불 TX를 취소하는 사용자입니다. 사용자가 실제로 앱 스토어에 로그인 한 후 납품이 완료되고 앱을 다시 활성화하면 PaymentQueue 프로세스가 실행됩니다.

이 동작은 잘못된 것 같습니다. 실제로 해당 내용이 실제 환경 인 경우 Storekit 버그로 간주 할 수 있습니다. 누군가가 동일한 행동을 경험 했습니까, 아니면 구매 국가에서 tx "교수형에 처해질"것을 막기 위해 뭔가를 나타낼 수 있습니까?

덕분에, 마커스

+0

에 동일한 문제가 있습니다. 해결 했니? – nico

+0

@nico 아니, 나는 버그 보고서를 제출하는 것에 대해 생각했지만 그렇게하지 않았다. 이 문제가 샌드 박스 환경에서만 발생하면 확실하지 않습니다. – marcus

+0

이 문제점에 대한 버그를 제출했습니다. – marcus

답변

2

나는이 키트를 저장 할 때 당신은 아무것도 믿을 수 있다고 생각하지 않습니다. '구매'버튼을 누른 후 대기중인 거래에 대해 '기다리는 것을 기다리는 것이 아니라'귀하의 비즈니스에 대해 계속 진행하십시오. 거래 (내일 일 수 있음)가 처리되었다는 통지를 받으면 처리합니다. 문서에이 효과에 대한 의견이 있습니다. 앱이 출시 될 때 SK 알림에 등록해야하며 언제든지 가져올 것으로 예상됩니다. Store Kit의 경우 앱에 "주"에 대한 인식을 구축하지 마십시오. 트랜잭션이 도착하면 처리하십시오.