2012-07-20 38 views
1

我已通過API在Balanced上創建新的商家帳戶。我添加了一個銀行賬戶到這個賬戶,然後標記完全相同的銀行賬戶,然後再次添加。我期待第二個協會扔409告訴我,該帳戶無法添加。平衡的重複的銀行帳戶檢測

我有兩個問題:

  1. 爲什麼API允許我完全一樣的銀行賬戶/卡添加到帳戶兩次?
  2. 如何檢測此信息而不是將銀行帳戶/卡添加到帳戶?

下面是我通過紅寶石寶石上的帳戶創建了兩個銀行賬戶的例子:

irb(main):029:0> @bank_accounts.items.each { |a| 
    puts "#{a["bank_name"]} #{a["bank_code"]} created-#{a["created_at"]} #{a["last_four"]} uri=#{a["uri"]} id=#{a["id"]}" 
}; nil 
123456789 created-2012-07-11T23:36:57.290555Z 2333 uri=/v1/marketplaces/TEST-MP4Z4RaRDF6TWqeupiVUSu8m/accounts/AC2tip2eDhi92THXXEkIdys1/bank_accounts/BA2mP9GtEPVB3v9DzWJ7ZH8B id=BA2mP9GtEPVB3v9DzWJ7ZH8B 
123456789 created-2012-07-11T23:37:22.655007Z 2333 uri=/v1/marketplaces/TEST-MP4Z4RaRDF6TWqeupiVUSu8m/accounts/AC2tip2eDhi92THXXEkIdys1/bank_accounts/BA2PlMIVFyMSSzo2zzUZb2XA id=BA2PlMIVFyMSSzo2zzUZb2XA 
=> nil 

回答

2
  1. 有上添加重複的銀行賬戶和卡,你注意到沒有限制。這是爲了讓開發人員減輕編寫重複銀行賬戶代碼的負擔而做出的決定。您的反饋被記錄和讚賞。
  2. 您可以爲與用戶關聯的卡或銀行賬戶編制索引,Balanced不會返回完整的卡號,但通過比較last_four,過期時間和名稱來判斷卡是否匹配,可以使用類似字段銀行賬戶,但與bank_code(路由號碼)交換到期。

    做這樣的事情在Ruby中的代碼是:

    require 'balanced' 
    
    Balanced.configure 'e1c5ad38d1c711e1b36c026ba7e239a9' 
    
    # duplicate cards 
    card1 = Balanced::Card.new(:card_number=>"4111111111111111", :expiration_month=>"12", :expiration_year=>"2020").save() # original card 
    card2 = Balanced::Card.new(:card_number=>"4111111111111111", :expiration_month=>"12", :expiration_year=>"2020").save() # our duplicate card 
    card3 = Balanced::Card.new(:card_number=>"4111111111111111", :expiration_month=>"12", :expiration_year=>"2021").save() # a different card 
    
    # create a new account 
    buyer = Balanced::Account.new(:email_address => '%[email protected]' % Time.now).save() 
    buyer.add_card(card1.uri) 
    
    # helper function 
    def has_card(cards, card) 
        cards.map { |c| c.last_four == card.last_four && c.expiration_month == card.expiration_month && c.expiration_year == card.expiration_year }.include? true 
    end 
    
    puts 'buyer already has this card' if has_card(buyer.cards, card2) 
    puts 'buyer does not have this card' if not has_card(buyer.cards, card3) 
    
+0

平衡剛剛推出了['hash'參數(https://github.com/balanced/balanced- api/blob/master/resources/cards.rst#card-view)。這將在不久的將來追溯到銀行賬戶。您可以通過查詢卡片端點'/ v1/marketplaces/M123/cards?hash = XXX'來使用它來搜索重複內容。 – mjallday 2012-09-18 15:19:20