iOS 에서 의 IAP 영수증 확인 학습 총화

3947 단어 iap
전에 보다 http://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html   귀납 적 총 결 은 아직 투철 하지 않 아 다시 깊이 공부 해 야 한다.
IAP 특징
1. IAP 는 사용자 가 소프트웨어 를 떠 나 지 않 아 도 소프트웨어 기능 을 빈 틈 없 이 업그레이드 하거나 내용 을 확대 할 수 있 게 한다. 
2. IAP 는 유 료 후 다운 로드 를 지원 하기 때문에 해적판 을 효과적으로 방지 할 수 있 습 니 다. 
3. 개발 자 는 시 뮬 레이 션 버 전 게임 을 추가 로 출시 하지 않 고 무료 버 전에 IAP 를 추가 하여 사용자 가 비용 을 지불 하고 업 그 레이 드 를 허용 하면 개발 원 가 를 절약 할 수 있 습 니 다. 
4. 개발 자 는 특정한 앱 의 콘 텐 츠 확장 을 무한 출시 할 수 있 고 지속 적 인 수입 을 보장 할 수 있 습 니 다. 
5. IAP 의 등장 형식 은 다양 하 다. 주로 특정한 기능 (예 를 들 어 Push) 을 여 는 것 이다.새 게임 지도 다운로드 하기;잠 금 해제 소프트웨어 의 새로운 내용 등등. 
6. IAP 구 매 는 App Store 기본 요금 지불 전략 에 부합 되 며, 유저 가 한 번 에 돈 을 지불 한 후 에는 제한 없 이 여러 번 IAP 콘 텐 츠 를 다운로드 할 수 있 으 며, 중복 요금 을 공제 하지 않 습 니 다. 
7. IAP 콘 텐 츠 를 구 매 할 때 사용 하 는 계 정 은 소프트웨어 본 체 를 다운로드 하 는 계 정과 일치 해 야 합 니 다.
8. App Store 와 같은 상업 조항.당신 은 당신 의 절차 에서 지불 가격 의 70% 를 받 을 것 입 니 다. 매달 지불 - 추가 신용카드 비용 이 없습니다.
2. IAP 구멍 (iOS 5 및 이하)
사용자 In-App Proxy 앱 의 IAP 메커니즘 을 돌아 앱 이 이미 비용 을 지불 한 것 으로 착각 하고 무료 로 비용 을 지불 하 는 내용 을 누리 게 함으로써 개발 자 에 게 손 해 를 입 힌 다.
3. 구멍 복구 방안 (iOS 6)
애플 의 영수증 검증 시스템 을 통 해 보호 체 제 를 구축 하 다.
1、   App 개인 서버 연결 을 통한 검증 의 영향
   서 비 스 를 연결 할 때 상사 의 공격 을 받 을 수 있 습 니 다.
 '암호 화 기술' 을 사용 하여 앱 이 개인 서버 에 연결 되 고 개인 서버 가 앱 스토어 서버 와 연결 되 어 있 는 지 확인 합 니 다.
('완화 전략' 을 기점 으로 사용 가능)
2、   App 이 App Store 서버 에 연 결 된 인증 의 영향
  앱 이 기기 에서 앱 스토어 서버 로 직접 연결 되면 앱 은 이 구멍 의 영향 을 받는다.해결 방안 은 다음 과 같은 정 보 를 검사 하 는 것 이다.
1) 앱 스토어 서버 에 연결 하 는 SSL 인증 서 는 EV 인증서 입 니 다.
2) 검증 에서 돌아 온 정보 와 SKPayment 대상 의 정보 가 일치 합 니 다.
3) 영수증 은 유효한 서명 을 가지 고 있다.
4) 새로운 사무 에는 하나 밖 에 없 는 사무 ID 가 있 습 니 다.
3. 완 료 된 사 무 를 어떻게 검증 합 니까?
1) 소모:
영수증 (장치 에서 든 서버 에서 든) 을 저장 하면 '완화 정책' 을 실행 한 후 영수증 을 다시 검증 합 니 다.영수증 을 저장 하지 않 으 면 이전 업 무 를 검증 할 수 없고 어떤 행동 도 취 할 수 없습니다.
2) 비 자체 소모:
현재 영수증 을 버 리 고 복구 작업 을 수행 하고 새로운 영수증 을 검증 합 니 다.이 과정 에서 다시 다운로드 하 는 내용 이 장치 에 있 는 것 을 피 합 니 다.
4. 코드 목록 (완화 정책)
메모: 이 목록 에 사 용 된 다음 기호 -
kSecTrustInfoExtendedValidationKey 
SecTrustCopyInfo
공공 API 가 아 닙 니 다.앱 은 이 목적 에서 만 사용 할 수 있 습 니 다.
코드 를 항목 에 추가 합 니 다:
1) 압축 파일 을 다운로드 합 니 다.2) 항목 에 다음 파일 을 추가 합 니 다 - VerificationController.h   VerificationController.m  3) Security framework 4 에 연결 하여 Base 64 의 인 코딩 과 디코더 를 제공 합 니 다. 인증 이 성공 할 때 실 행 됩 니 다.
4. 제품 보호
https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html http://www.himigame.com/iphone-cocos2d/673.html 1. IAP Cracker 플러그 인 App Store 의 유 료 절 차 를 돌아 갈 수 있 습 니 다. 그 방식 은 사용자 가 유 료 제품 을 클릭 하여 구 매 한 후에 IAP Cracker 는 구 매 성공 소식 (인터넷 이 필요 없고, 말하자면 post 데이터 도 App Store 에 주지 않 습 니 다!) 을 모 의 한 다음 에 우리 App 은 이 '가짜' 거래 성공 소식 을 받 고 사용자 에 게 직접 돈 을 추가 하고 장 비 를 추가 하 며 각종...  2. IAP Cracker 보호 (다운로드) json base. rar) 유 료 코드 에 추가 검증 판단 을 추가 합 니 다. 
- (void) paymentQueue:(SKPaymentQueue*) queueupdatedTransactions: (NSArray *)transactions//    
{
    for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased://    
                 if([self putStringToItunes:transaction.transactionReceipt]){
                     //         ,      
                 }
                   break;
             ......    
         }
     }
}

putStringToItunes 함수:
1) 우선 들 어 오 는 영수증 data 형식 변 수 를 base 64 에서 string 형식 으로 변환 합 니 다.
2) 그리고 이 영수증 을 json 형식 으로 appstore 에 보 내 검증 합 니 다!여기 주의!반드시 json 형식 으로 보 내야 합 니 다. 그렇지 않 으 면 appstore server 엔 드 가 인식 되 지 않 습 니 다!
3) 마지막 으로 json 을 이용 하여 appstore server 가 돌아 오 는 필드 (json 데이터) 를 분석 합 니 다. status 라 는 key 의 value 만 분석 하면 됩 니 다!
app store 에서 영수증 을 정확하게 검 증 했 을 때 저희 가 분 석 했 습 니 다. status 이 key 의 value 값 은 0 (0) 입 니 다!
다른 글 참고:
http://www.himigame.com/iphone-cocos2d/673.html

좋은 웹페이지 즐겨찾기