【发布时间】:2016-01-13 06:47:01
【问题描述】:
我开始将 Stripe 集成到我正在制作的 iOS 应用程序中,并且我已经到了需要验证卡信息的地步。
我试过了:
#pragma mark - My Actions
- (IBAction)buyButtonTapped:(id)sender {
//Populate STPCard property
self.stripeCard = [[STPCard alloc]init];
self.stripeCard.name = self.txtFieldCardHolderName.text;
self.stripeCard.number = self.txtFieldCardNumber.text;
self.stripeCard.cvc = self.txtFieldCardCvc.text;
self.stripeCard.expMonth = [self.selectedMonth integerValue];
self.stripeCard.expYear = [self.selectedYear integerValue];
//Validate Customer info
if ([self validateCustomerInfo]) {
[self performStripeOperation];
}
}
-(BOOL)validateCustomerInfo{
//Create Alert
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Please, try again!"
message:@"Please, enter all required information."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * _Nonnull action) {
//Add some action
}];
//Add its action
[alert addAction:action];
//Validate text fields
if (self.txtFieldCardHolderName.text == 0 || self.txtFieldCardNumber.text == 0 || self.txtFieldCardExpDate.text == 0 || self.txtFieldCardCvc.text == 0) {
[self presentViewController:alert animated:true completion:nil];
return NO;
}
//Validate card number, CVC, expMonth, expYear
NSError *error = nil;
[self.stripeCard validateCardReturningError:&error];
//3
if (error) {
alert.message = [error localizedDescription];
[self presentViewController:alert animated:true completion:nil];
return NO;
}
return YES;
}
我在 StackOverflow 上检查了其他几个问题,似乎每个人都使用 validateCardReturningErrormethod,它在 iOS9 中已被弃用。
Xcode 抱怨并要求我改用 STPCardValidator。
谁能帮我举一个使用 STPCardValidator 验证卡的例子?
我注意到我也可以使用以下 Class 方法:
[STPCardValidator validationStateForNumber:self.txtFieldCardNumber.text validatingCardBrand:true];
但我不确定如何在我的 validateCustomerInfo 方法中使用它。
【问题讨论】:
-
现在,STPCard 没有这些属性?
标签: ios objective-c stripe-payments