I'm developing a marketplace website where tutors and students can find each other. I'm building an online payment system (much like elance or guru.com) where the tutor can get paid and we take a cut.
Couple questions:
What's the best way to block IP addresses from certain countries like Nigeria? (Note, I am using Ruby on Rails so any recommendations specific to that would be even better but if not thats fine too.)
What other techniques can I use besides blocking certain IP's? (I'm already doing AVS and normal gateway checks).
What common scams do I need to check for?
For example, one I can think of is someone using the system to pay themselves, they receive the funds as payment (minus our fee) and then do a chargeback on the credit card.
I imagine these are similar to problems faced by sites like Paypal or Google Checkout (some call these aggregation sites) since they are taking a small percentage fee - so if the original source of funds is lost it's a huge loss (many time multiple of the profit involved unlike normal higher margin products).
Couple additional notes:
Here is what I have done so far, if people have more suggestions please respond:
The function looks a bit like this (note this doesn't include the code to check the IP addresses)
def fraud_review invoice
return true if invoice.total > 300
#try to find out if they are the same person!
client = invoice.client
tutor = invoice.tutor
count = 0
client.full_name.split.each do |piece|
count += 1 if tutor.full_name.include? piece
end
client.name_on_card.split.each do |piece|
count += 1 if tutor.full_name.include? piece
end
client.street.split.each do |piece|
count += 1 if tutor.street.include? piece
end
return true if count > 2
false
end