gpt4 book ai didi

iphone - 在 iPhone 应用程序中验证信用卡公式

转载 作者:行者123 更新时间:2023-12-03 18:39:27 25 4
gpt4 key购买 nike

////////////更新!////////////////////

所以我在网上查了一下,找到了一些公式并进行了测试。我找到了一个有效的公式。1. 反转卡号2. 每隔一个数字将数字加倍3. 对于没有加倍的数字,将它们添加到新的“加倍”字符串中4. 将所有数字加在一起 ​​- 一一相加5. 除以十,如果没有余数,则卡号有效 - 可能未“批准”,但数字至少顺序正确。

例如卡号“4866 3060 7833 1744”

  1. 反向 - 4471 3387 0603 6684
  2. 创建一个字符串从第二个数字开始的数字“47376364”
  3. 现在使用 every 创建一个字符串数字翻倍“814617126128”
  4. 现在附加一个带有数字的字符串您在步骤 1 中未使用的数字加倍的字符串“41380068”(新字符串将是81461712612841380068)
  5. 现在使用 EACH 对字符串求和个人角色(共77个)
  6. 现在将总和 (77) 除以 10。如果还有余数,卡是无效 (77/10 = 7.7)无效卡

这里是这个 http://www.brainjar.com/js/validation/default2.asp 的来源

因为我爱你们所有人,而且你们都在很多方面帮助了我,所以我想我应该分享我为执行此公式而编写的代码。再次感谢迈克·克兰德尔(Mike Crandall),他帮助我反转了第一根弦,然后我就从那里拿走了它。

这是使用卢恩公式

我的.h文件

#import <UIKit/UIKit.h>

@interface CCValidatorViewController : UIViewController {

NSString * ccNumber;
NSString * validCard;
NSString * isAMEX;


}
@property (nonatomic, retain)NSString * ccNumber;
@property (nonatomic, retain)NSString * isAMEX;
@property (nonatomic, retain)NSString * validCard;
- (NSString *) validateCard:(NSString *)ccNumberString;

@end

我的.m文件

- (void)viewDidLoad {
[super viewDidLoad];
ccNumber = @"4866306078331744"; //invalid card number
ccNumber = [self validateCard:ccNumber];
NSLog(@"%@",validCard);
}

- (NSString *) validateCard:(NSString *)ccNumberString{
validCard = @"";
NSString * ccNumberReversed = @"";
NSString * doubleNumbers = @"";
NSString * everyOtherNumber = @"";
NSString * lastChar = @"";
NSString * intDoubled;
NSString * stringToSum;
NSUInteger count = [ccNumberString length];
NSUInteger len = 1;
NSRange r;

//since American Express is American Express....., we have to do something special for them.... assholes....
r = NSMakeRange( 0, 1);
lastChar = [ccNumberString substringWithRange:r];
if ([lastChar compare:@"3"] ==0) {

isAMEX = @"YES";

}
else {
isAMEX = @"NO";
}



//reverse the string

for ( int i=0; i<count; i++){
r = NSMakeRange( count-i-1, len);
lastChar = [ccNumberString substringWithRange:r];
ccNumberReversed = [ccNumberReversed stringByAppendingString:lastChar];
}

//double every other number

int loc = 1;
int ttr = ccNumberReversed.length/2;
for ( int i=0; i<ttr; i++){

r = NSMakeRange( loc, len);
loc = loc+2;
lastChar = [ccNumberReversed substringWithRange:r];
int dv = [lastChar intValue];
dv = (dv * 2);
intDoubled = [NSString stringWithFormat:@"%d",dv];
doubleNumbers = [doubleNumbers stringByAppendingString:intDoubled];
}

// get every other number starting at index 0
loc = 0;
if ([isAMEX compare:@"YES"] ==0) {
ttr = ccNumber.length/2+1;
}
else {
ttr = ccNumber.length/2;
}


for ( int i=0; i<ttr; i++){

r = NSMakeRange( loc, len);
loc = loc+2;
lastChar = [ccNumberReversed substringWithRange:r];
everyOtherNumber = [everyOtherNumber stringByAppendingString:lastChar];
}

//combine both strings so we can sum them up
stringToSum = [doubleNumbers stringByAppendingString:everyOtherNumber];

// add all the numbers up one by one and divide by 10... if no remainder - its a valid card

loc = 0;
ttr = stringToSum.length;
int stringSum = 0;
for ( int i=0; i<ttr; i++){

r = NSMakeRange( loc, len);
lastChar = [stringToSum substringWithRange:r];
int cc = [lastChar intValue];
stringSum = stringSum+cc;

loc ++;
}

if (stringSum%10 == 0) {

validCard = @"YES";
}
else {

validCard = @"NO";
}

return validCard;

}

************ 原帖********************

是否有人可以分享任何代码,以便在发布到 API 之前验证信用卡号?

我想问一下,如果我在应用程序中出售电影院门票,苹果会出现任何问题吗?

这个应用程序与 fandango 非常相似,但适用于私有(private)链式影院(总共大约 13 家)。

提前致谢!

最佳答案

我能够回答我自己的问题,并在上​​面的“更新”区域中分享。

关于iphone - 在 iPhone 应用程序中验证信用卡公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2869851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com