2012-07-09 1 views
6

저는 앱 구매시이 앱을 사용 중입니다. 행복한 경로가 모두 다 커버되었고, 모든 것이 잘됩니다. 나는 행복하지 않은 경로를 찾으려고 노력하고 있습니다.저장 키트는 미완료 트랜잭션을 얼마나 오래 보관합니까?

간단히 말해서 구매는 서버 측 구성 요소에 바인딩됩니다. 구매시 거래가 "Purchased"상태 일 때 서버로 이동하여 사용자 계정을 사용할 수있게됩니다. 요청이 돌아 오면 몇 가지 정리하고 결국 SKPaymentQueue에서 -finishTransaction :을 호출합니다.

아무런 이유없이 서버 호출이 실패 할 때 비 행복 경로가 거의 발생합니다. 네트워크를 사용할 수 없거나 네트워크 시간이 초과되었습니다. 사용자가 구매 한 직후 앱을 종료했으며 서버를 호출하기 바로 전에 이름을 지정했습니다.

sandbox 계정이있는 5.1 시뮬레이터에서 테스트 한 결과 미완료 된 Purchased 트랜잭션이 다음 시작시 대기열로 돌아오고 내 대리인이 올바르게 호출된다는 것을 알 수 있습니다. 그러나 잠시 후 예를 들어 5 분을 말하면 붐은 거래입니다. 샌드 박스 계정의 전체 안정성을 고려해 볼 때 시뮬레이터의 구현에서이 점을 기꺼이 들려주고 싶지만 말할 수는 없습니다.

이 문제를 해결하는 적절한 방법은 무엇입니까?

보너스 질문 : 사과가 실제로 누군가를 부과합니까? 그것은 응용 프로그램 - finishTransaction : 후에 있어야 할 것 같은데,하지만 난 아무 데도이 증거를 찾을 수 없습니다.

감사합니다, /KRA

UPDATE : 물리적 장치에 테스트, 거의 한 시간 트랜잭션이 여전히 존재한다. 사라지는 거래가 시뮬레이터 일인 것처럼 보입니다.

답변

0

내가 인앱 구매를 구현했을 때 시뮬레이터에서 테스트를 포기했습니다. 그 행동은 너무나 다릅니다. 장치에서 테스트하여 장치에서 작동하는지 확인하십시오.

충전에 대한 질문에도 관심이 있습니다. 아직 완전히 알려지지 않았기 때문에 (내 앱은 아직 출시되지 않았습니다.)).

+0

답변 해 주셔서 감사합니다. 그게 결론에 도달했습니다. 샌드 박스는 완전히 신뢰할 수 없으므로 찌르 러 가기 전에 믿음의 도약을해야합니다. 장치에 대한 초기 테스트 중 일부는 필자에게 항상 돌아올 것이라고 알려주었습니다. 장치에 대한 테스트는 정확하게 신뢰할 수 없습니다. 설치 제거, 재부팅, 재시작, 보관소 키트를 사용하여 "appstore에 연결할 수 없습니다"라는 오류가 발생하여 재 설치해야합니다. – kra

+0

나는 장치에서 테스트 할 때 너무 많은 문제가 발생하지 않았다. 이 가이드는 http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/에 자세히 설명되어 있습니다. 버그 가끔 나에게 유일한 것은 재 컴파일을 한 후에 잘못된 제품 ID를 반환한다는 것입니다. 그런 경우에는 삭제하고 다시 빌드해야합니다. 제품 ID에 대한 전체 코드 서명 관계는 여전히 나에게 마술입니다. 예를 들어 디버깅 서명을 사용하여 adhoc-testrollout을 수행 할 때 왜 작동하는지 알 수 없습니다. –

+0

그래, 그 부분은 꽤 괜찮아, 내 문제는 샌드 박스 계정을 전환하는 데 더 많은 것이었다. 어느 시점에서 StoreKit은 그냥 포기하고 끊임없이 가짜 오류를 반환하며 전화를 제거하거나 다시 부팅하거나 다시 설치해야합니다. 코드 서명과 관련된 문제는 생각 나지 않습니다. 와일드 카드가 아닌 특정 프로비저닝 프로파일을 사용하는 데주의해야합니다. 항목을 사용할 수있는 한 인증서와 상관없이 사용할 수 있습니다. – kra