我在整合Apple Pay时遵循了Stripe的文档和示例应用程序。
在handlePaymentAuthorizationWithPayment方法中,在createTokenWithPayment下,我收到错误:
错误Domain = com.stripe.lib代码= 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库。
感谢。
答案 0 :(得分: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(在模拟器上)和没有它们(在设备上)希望这有助于:)
答案 1 :(得分:3)
我想我知道这里发生了什么。如果它有助于任何人,请保留它。
当我最初将Stripe / Apple Pay设置到我的应用程序中时,我在尝试实施STPTestPaymentAuthorizationController
时遇到了很多错误。我发现了这里描述的确切问题(Stripe payment library and undefined symbols for x86_64)。
我通过注释掉Stripe代码的一部分来复制上面定义的解决方案,这可能会(?)产生Error Domain=com.stripe.lib Code=50
错误。
我通过完全不使用STPTestPaymentAuthorizationController
来修复此问题,只需将其替换为PKPaymentAuthorizationViewController
模式中的#DEBUG
。
tl:dr 不完全确定为什么STPTestPaymentAuthorization不起作用;通过在测试模式下使用我的iPhone和Stripe仪表板运行PKPaymentAuthorizationViewController完全避免了这种情况。