2010-04-05 98 views
0

我正在爲iPhone/iPod組合編寫POS應用程序,使用Apple Stores :: EasyPay中使用的相同確切硬件。確定信用卡/借記卡類型

好吧,我的障礙是這樣的:我如何識別哪個信用卡類型被用作文本輸入到uitextfield?

我假設我必須使用textField:shouldChangeCharactersInRange:replacementString:?不過,我有一些想法,但我簡單不能把它們放在一起形成代碼:/

任何幫助表示讚賞!

回答

0

我認爲你在textField:shouldChangeCharactersInRange:replacementString:的正確軌道上,因爲每次用戶更改文本字段中的內容時都會調用它。這聽起來像你並不想改變textField,而是想改變另一個標識卡類型的相關控件。您可以使用Determine Credit Card Type By Number中描述的算法作爲幫助函數,以便在用戶開始輸入時相應地調整信用卡類型。

您可能想要跳過完整驗證,直到輸入字符串具有正確的字符數。

更新:有趣的response in the same thread提到,實際上讓用戶選擇信用卡類型是一個好主意,因爲它至少會向用戶顯示您接受的信用卡列表。

+0

嗯有趣的是,我已經看過手動輸入卡的類型,但規範說:必須「自動識別卡號數據字段填充卡類型」。 關於要使用的算法,你在談論哪一個算法,該頁面有很多,但我似乎無法將它們轉換爲可可。 – bear 2010-04-05 13:49:58

1

也許我沒有理解你的問題,但我認爲你可以有一個BIN列表(銀行識別號碼)。例如,大多數以'4'開頭的信用卡號碼都是Visa。如果他們以'5'開頭,他們可能是萬事達卡。這只是一個例子,你應該有一個完整的列表來標識每個可能的卡。不幸的是,一個完整的和更新的清單是支付的,但你可以有一個很好的清單搜索網上的免費信息,如here

+0

謝謝 - 只需要將其轉換爲可可:) – bear 2010-04-05 14:29:50

1

您可以從卡號碼,這就是所謂的Issuer Identification Number (IIN)

麻煩的是前六位數字猜卡的類型作出合理的嘗試,你就很難得到不結盟研究所的完整列表。即使是主要收購者也難以保持最新的名單,因爲發行人經常增加或刪除範圍。

幸運的是,卡的類型一般不重要。您應該能夠對該長度進行基本驗證,然後將該卡提交給處理器進行驗證和授權。

+0

我實際上並沒有想過使用Luhn校驗碼。這可能有用的是用戶偶然輸入了錯誤的卡號。 – bear 2010-04-05 14:30:47

1

您可以聯繫Visa/MC並註冊BIN列表更新。簽證是免費的,但我相信MC有收費。一旦你註冊,你會得到一個CD每月郵寄給你當前的BIN範圍。

如果您正在使用處理器或ISO(獨立銷售組織),則還可以通過處理器或ISO(獨立銷售組織)。我假設你有一個支付應用程序,你與ISO有一些關係,可以爲你的客戶設置商家賬戶。 ISO應該能夠從處理器獲得BIN列表,並且可能是免費的。

相關問題