我正在为iPhone/iPod组合编写一个POS机应用程序,使用的硬件与Apple Stores::EasyPay中使用的硬件完全相同。
好的,我的障碍是:在uitext域中输入文本时,如何识别正在使用的信用卡类型?
我想我必须使用textField:shouldChangeCharactersInRange:replacementString:?但是,我已经有了一些想法,但我就是不能把它们放在一起形成代码:/
如有任何帮助,我们不胜感激!
发布于 2010-04-05 21:38:07
我认为使用textField:shouldChangeCharactersInRange:replacementString:是正确的,因为每次用户更改文本字段中的内容时都会调用它。听起来您实际上并不想更改textField,而是想更改标识卡类型的另一个相关控件。当用户开始输入时,您可以使用Determine Credit Card Type By Number中描述的算法作为助手函数来相应地调整信用卡类型。
在输入字符串具有正确的字符数之前,您可能希望跳过完整的验证。
更新:,一个有趣的response in the same thread提到,实际上让用户选择信用卡类型是一个好主意,因为它至少向用户显示了您接受的信用卡列表。
发布于 2010-04-05 22:16:49
也许我不理解你的问题,但我认为你可以有一个BIN的名单(银行识别码)。例如,大多数以“4”开头的信用卡号码都是Visa。如果它们以“5”开头,那么它们很可能是万事达卡。这只是一个例子,你应该有一个完整的列表来识别每一张可能的卡片。不幸的是,一个完整的和更新的列表是付费的,但你可以有一个很好的列表来搜索网络上的免费信息,比如here。
发布于 2010-04-05 22:19:04
您可以合理地尝试从卡号的前六位猜测卡类型,这称为Issuer Identification Number (IIN)
问题是,您将很难获得完整的list列表。即使是主要的收购者也很难保持最新的名单,因为发行人经常增加或删除范围。
幸运的是,卡的类型通常不重要。您应该能够执行长度和luhn check digit的基本验证,然后将卡提交给处理器进行验证和授权。
https://stackoverflow.com/questions/2578598
复制相似问题