1from __future__ import absolute_import, division, print_function 2 3from stripe import util 4from stripe.api_resources.abstract import DeletableAPIResource 5from stripe.api_resources.abstract import UpdateableAPIResource 6from stripe.api_resources.customer import Customer 7from stripe.six.moves.urllib.parse import quote_plus 8 9 10class AlipayAccount(DeletableAPIResource, UpdateableAPIResource): 11 OBJECT_NAME = "alipay_account" 12 13 @classmethod 14 def _build_instance_url(cls, customer, sid): 15 token = util.utf8(sid) 16 extn = quote_plus(token) 17 customer = util.utf8(customer) 18 19 base = Customer.class_url() 20 owner_extn = quote_plus(customer) 21 22 return "%s/%s/sources/%s" % (base, owner_extn, extn) 23 24 def instance_url(self): 25 return self._build_instance_url(self.customer, self.id) 26 27 @classmethod 28 def modify(cls, customer, id, **params): 29 url = cls._build_instance_url(customer, id) 30 return cls._static_request("post", url, **params) 31 32 @classmethod 33 def retrieve( 34 cls, 35 id, 36 api_key=None, 37 stripe_version=None, 38 stripe_account=None, 39 **params 40 ): 41 raise NotImplementedError( 42 "Can't retrieve an Alipay account without a customer ID. " 43 "Use customer.sources.retrieve('alipay_account_id') instead." 44 ) 45