import urllib import simplejson class Stripe: """ Usage: key='' d = Stripe(key).charge( amount=100, currency='usd', card_number='4242424242424242', card_exp_month='5', card_exp_year='2012', card_cvc_check='123', description='test charge') print d print Stripe(key).check(d['id']) print Stripe(key).refund(d['id']) Sample output (python dict): {u'fee': 0, u'description': u'test charge', u'created': 1321242072, u'refunded': False, u'livemode': False, u'object': u'charge', u'currency': u'usd', u'amount': 100, u'paid': True, u'id': u'ch_sdjasgfga83asf', u'card': {u'exp_month': 5, u'country': u'US', u'object': u'card', u'last4': u'4242', u'exp_year': 2012, u'type': u'Visa'}} if paid is True than transaction was processed """ def __init__(self,key): self.key = key def charge(self, amount, currency='usd', card_number='4242424242424242', card_exp_month='5', card_exp_year='2012', card_cvc_check='123', description='test charge'): params = urllib.urlencode({'amount':amount, 'currency':currency, 'card[number]':card_number, 'card[exp_month]':card_exp_month, 'card[exp_year]':card_exp_year, 'card[cvc_check]':card_cvc_check, 'description':description}) u = urllib.urlopen('https://%s:@api.stripe.com/v1/charges' % \ self.key,params) return simplejson.loads(u.read()) def check(self,charge_id): u = urllib.urlopen('https://%s:@api.stripe.com/v1/charges/%s' % \ (self.key,charge_id)) return simplejson.loads(u.read()) def refund(self,charge_id): params = urllib.urlencode({}) u = urllib.urlopen('https://%s:@api.stripe.com/v1/charges/%s/refund'%\ (self.key,charge_id),params) return simplejson.loads(u.read()) if __name__=='__main__': key = raw_input('user>') d=Stripe(key).charge(100) print 'charged',d['paid'] s = Stripe(key).check(d[u'id']) print 'paid',s['paid'],s['amount'] ,s['currency'] s = Stripe(key).refund(d[u'id']) print 'refunded',s['refunded']