このちょっとした RnD が私を助けてくれました。Stripe 自身が提供するCustomSampleProjectを掘り下げると、代理人が STPCardを認識すると、 ApplePayStubsはかなりうまく機能します。
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
didAuthorizePayment:(PKPayment *)payment
completion:(void (^)(PKPaymentAuthorizationStatus))completion
のPKPaymentAuthorizationViewControllerDelegateが呼び出されます。ここのサンプル コードは、コードが ApplePayStubs 用のデバッグで実行されたかどうかを確認します。デリゲートの(PKPayment *) 支払いはSTPCardに変換され、STPToken生成のためにSTPAPIClientに起動されます。以下は、上記のデリゲートの本体です。
#if DEBUG // This is to handle a test result from ApplePayStubs
if (payment.stp_testCardNumber)
{
STPCard *card = [STPCard new];
card.number = payment.stp_testCardNumber;
card.expMonth = 12;
card.expYear = 2020;
card.cvc = @"123";
[[STPAPIClient sharedClient] createTokenWithCard:card
completion:^(STPToken *token, NSError *error)
{
if (error)
{
completion(PKPaymentAuthorizationStatusFailure);
[[[UIAlertView alloc] initWithTitle:@"Error"
message:@"Payment Unsuccessful! \n Please Try Again"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
return;
}
/*
Handle Token here
*/
}];
}
#else
[[STPAPIClient sharedClient] createTokenWithPayment:payment
completion:^(STPToken *token, NSError *error)
{
if (error)
{
completion(PKPaymentAuthorizationStatusFailure);
[[[UIAlertView alloc] initWithTitle:@"Error"
message:@"Payment Unsuccessful!"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
return;
}
/*
Handle Token here
*/
}];
#endif
これは私にとってはうまくいきました。ApplePayStubs あり (シミュレータ上) となし (デバイス上) これが役立つことを願っています:)