def update(self, **other_args): """ Updates a payment method. Payment method can't be updated once it has been retained or redacted. :: pm = PaymentMethod.create('4242424242424242', '133', '07', '12') assert pm.is_sensitive_data_valid pm.update(first_name='dummy') if not pm.errors: assert pm.first_name == 'dummy' else: # deal with pm.errors """ payload = {'payment_method': {}} optional_data = dict( (k, v) for k, v in other_args.iteritems() if k in self.create_data) payload['payment_method'].update(**optional_data) payload = dict_to_xml(payload) # Send payload and return payment method. req = Request(self.update_url % self.payment_method_token, payload, method='put') req.add_header("Content-Type", "application/xml") res = fetch_url(req) self._update_fields(res) return self
def update(self, **other_args): """ Updates a payment method. Payment method can't be updated once it has been retained or redacted. :: pm = PaymentMethod.create('4242424242424242', '133', '07', '12') assert pm.is_sensitive_data_valid pm.update(first_name='dummy') if not pm.errors: assert pm.first_name == 'dummy' else: # deal with pm.errors """ payload = { 'payment_method': { } } optional_data = dict((k, v) for k, v in other_args.iteritems() if k in self.create_data) payload['payment_method'].update(**optional_data) payload = dict_to_xml(payload) # Send payload and return payment method. req = Request(self.update_url % self.payment_method_token, payload, method='put') req.add_header("Content-Type", "application/xml") res = fetch_url(req) self._update_fields(res) return self
def create(cls, card_number, cvv, expiry_month, expiry_year, **other_args): """ Creates a payment method. Transparent redirects are favored method for creating payment methods. Using this call places the burden of PCI compliance on the client since the data passes through it. :: pm = PaymentMethod.create('4242424242424242', '133', '07', '12') assert pm.is_sensitive_data_valid """ payload = { 'payment_method': { 'card_number': card_number, 'cvv': cvv, 'expiry_month': expiry_month, 'expiry_year': expiry_year, } } optional_data = dict( (k, v) for k, v in other_args.iteritems() if k in cls.create_data) payload['payment_method'].update(**optional_data) payload = dict_to_xml(payload) # Send payload and return payment method. req = Request(cls.create_url, payload, method='post') req.add_header("Content-Type", "application/xml") return cls(fetch_url(req))
def create(cls, card_number, cvv, expiry_month, expiry_year, **other_args): """ Creates a payment method. Transparent redirects are favored method for creating payment methods. Using this call places the burden of PCI compliance on the client since the data passes through it. :: pm = PaymentMethod.create('4242424242424242', '133', '07', '12') assert pm.is_sensitive_data_valid """ payload = { 'payment_method': { 'card_number': card_number, 'cvv': cvv, 'expiry_month': expiry_month, 'expiry_year': expiry_year, } } optional_data = dict((k, v) for k, v in other_args.iteritems() if k in cls.create_data) payload['payment_method'].update(**optional_data) payload = dict_to_xml(payload) # Send payload and return payment method. req = Request(cls.create_url, payload, method='post') req.add_header("Content-Type", "application/xml") return cls(fetch_url(req))
def _transact(cls, payment_method_token, amount, processor_token, transaction_type, endpoint, options): """ Meant to be used internally and shouldn't be called from outside. Makes an `authorize` or `purchase` request. `authorize` and `purchase` have same flow, except for `transaction_type` and `endpoint`. """ purchase_data = cls._construct_options(payment_method_token, transaction_type, amount, options) # Send payload and return transaction. req = Request(endpoint % processor_token, purchase_data, method='post') req.add_header("Content-Type", "application/xml") return Transaction(fetch_url(req))
help = _('specify which uuid to use, useful for debugging and testing mostly.')) (opts, args) = parser.parse_args() ConnSetup(opts.smoonURL, opts.user_agent, opts.timeout, None) smolt.DEBUG = opts.DEBUG smolt.hw_uuid_file = opts.uuidFile # read the profile profile = smolt.Hardware() delHostString = 'uuid=%s' % profile.host.UUID try: req = Request('/client/delete') req.add_header('Content-length', '%i' % len(delHostString)) req.add_header('Content-type', 'application/x-www-form-urlencoded') req.add_data(delHostString) o = req.open() except urllib2.URLError, e: sys.stderr.write(_('Error contacting Server:')) sys.stderr.write(str(e)) sys.stderr.write('\n') sys.exit(1) else: serverMessage(o.read()) o.close() sys.stdout.write(_('Profile removed, please verify at')) sys.stdout.write(' ') sys.stdout.write(urljoin(opts.smoonURL + '/', '/client/show?%s\n' % delHostString))
help=_( 'specify which uuid to use, useful for debugging and testing mostly.')) (opts, args) = parser.parse_args() ConnSetup(opts.smoonURL, opts.user_agent, opts.timeout, None) smolt.DEBUG = opts.DEBUG smolt.hw_uuid_file = opts.uuidFile # read the profile profile = smolt.Hardware() delHostString = 'uuid=%s' % profile.host.UUID try: req = Request('/client/delete') req.add_header('Content-length', '%i' % len(delHostString)) req.add_header('Content-type', 'application/x-www-form-urlencoded') req.add_data(delHostString) o = req.open() except urllib2.URLError, e: sys.stderr.write(_('Error contacting Server:')) sys.stderr.write(str(e)) sys.stderr.write('\n') sys.exit(1) else: serverMessage(o.read()) o.close() sys.stdout.write(_('Profile removed, please verify at')) sys.stdout.write(' ') sys.stdout.write(