2016-08-15 8 views
0

나는 requestPaymentIntent를 구현하려고 애 썼습니다. 먼저 작동했지만 어느 시점에 Bing 검색을 시작했으며 어떤 시점에서는 실수를 발견하고 그 이후에 아무것도하지 않는다고 말했습니다. 이것은 주제에서도 지적되었습니다 : Payment domain intent는 Sirikit을 사용하여 의도 UI 또는 의도 확인 대신 인터넷 결과를 표시합니다.지불 의도 Sirikit 여전히 작동하지 않습니다

윌리엄 힌덴부르크 (William Hindenburg)는 "지불 의도 핸들러의 확인 및 처리 방법에서 반환하기 전에 INSendPaymentIntentResponse에 paymentRecord를 추가해야한다는 사실을 발견했습니다. 그것이 당신을 위해 그것을 고치는 지보십시오. "

나는이 작업을 시도했지만 시도 할 수 없습니다. 나는 주로 상태를 정의하는데 문제가있다.

그래서 내 핸들 메서드에서는 먼저 userActivity를 정의합니다. 그런 다음 응답 객체를 초기화합니다. 내가/필요 사용하지 않는

response.paymentRecord = INPaymentRecord(payee: nil, payer: nil, currencyAmount: intent.currencyAmount, paymentMethod: nil, note: intent.note, status: ???) 

일부 매개 변수를, 그래서 나는 무기 호에 작성 :

let response = INRequestPaymentIntentResponse (code: .success, userActivity: userActivity) 

은 그 때 나는 응답 객체에 paymentRecord을 추가 할 수 있습니다. 내 앱에서 갖고 싶은 두 가지 사항, 지불해야하는 금액 및 지불해야하는 항목 (메모). ???의 장소에 ??? 나는 상태를 채워야 만한다. 몇 가지 시도를했지만, 나는 그것을 이해할 수 없다. 여러 사람이 이미이 작업을 수행 했으므로이 작업 방법을 설명하는 데 도움을받을 수 있습니까? 고마워요!

답변

0

Apple은 실제로 어떤 상태를 확인 용으로 지정하지 않았지만, 현재 나를 위해 작동합니다.

확인 전화 :

response.paymentRecord = [self makePaymentRecordForIntent:intent withStatus:INPaymentStatusPending]; 

보내기 전화 :

intentResponse.paymentRecord = [self makePaymentRecordForIntent:intent withStatus:INPaymentStatusCompleted]; 

Genericized 코드 :

-(INPaymentRecord *)makePaymentRecordForIntent:(INSendPaymentIntent *)intent withStatus:(INPaymentStatus)status { 

INPaymentMethod *payMethod = [[INPaymentMethod alloc] initWithType:INPaymentMethodTypeChecking 
                   name:@"Gold Star Checking" 
               identificationHint:@"1234" 
                   icon:nil]; 

INPersonHandle *senderHandle = [[INPersonHandle alloc] initWithValue:@"[email protected]" type:INPersonHandleTypeEmailAddress]; 
NSPersonNameComponents *senderNameComp = [[NSPersonNameComponents alloc] init]; 
senderNameComp.givenName = @"First"; 
senderNameComp.familyName = @"Last"; 
INPerson *senderPerson = [[INPerson alloc] initWithPersonHandle:senderHandle 
              nameComponents:senderNameComp 
               displayName:@"First Last" 
                image:nil 
             contactIdentifier:nil 
             customIdentifier:nil]; 

INPaymentRecord *paymentRecord = [[INPaymentRecord alloc] initWithPayee:intent.payee 
                    payer:senderPerson 
               currencyAmount:intent.currencyAmount 
                paymentMethod:payMethod 
                  note:intent.note 
                 status:status]; 
return paymentRecord; 

}

+0

아직도 나를 위해 작동하지 않습니다. 시리는 그녀의 '어 - 오' – cyril