7

Apple Pay の統合については、Stripe のドキュメントとサンプル アプリに従いました。

createTokenWithPayment の下の handlePaymentAuthorizationWithPayment メソッドで、次のエラーが発生します。

エラー Domain=com.stripe.lib Code=50 「お支払い情報の形式が正しくありません。iOS ライブラリの最新バージョンを正しく使用していることを確認してください。詳細については、https: //stripe.com/docs/mobile を参照してください。 /ios ." UserInfo=0x170261b40 {com.stripe.lib:ErrorMessageKey=お支払い情報の形式が正しくありません。最新バージョンの iOS ライブラリを正しく使用していることを確認してください。詳細については、 https: //stripe.com/docs/mobile/ios を参照してください。, NSLocalizedDescription=お支払い情報の形式が正しくありません。最新バージョンの iOS ライブラリを正しく使用していることを確認してください。詳細については、https://stripe.com/docs/mobile/iosを参照してください。}

誰でもこれを解決する方法を知っていますか? 最新の Stripe ライブラリを使用しています。

ありがとう。

4

2 に答える 2

5

このちょっとした 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 あり (シミュレータ上) となし (デバイス上) これが役立つことを願っています:)

于 2015-04-01T17:33:12.100 に答える