コード例 #1
0
 def _do_create(self, profile_data):
     """
     Creates a new profile in the PayPal account with the specified id, using the specified data.
     """
     profile = WebProfile(profile_data)
     result = profile.create()
     if not result:
         raise CommandError("Could not create web profile: {}".format(profile.error))
     log.info("Created profile `%s` (id=%s).", profile.name, profile.id)
     return profile
コード例 #2
0
ファイル: paypal_profile.py プロジェクト: 10clouds/ecommerce
 def _do_create(self, profile_data):
     """
     Creates a new profile in the PayPal account with the specified id, using the specified data.
     """
     profile = WebProfile(profile_data)
     result = profile.create()
     if not result:
         raise CommandError("Could not create web profile: {}".format(profile.error))
     else:
         log.info("Created profile `%s` (id=%s).", profile.name, profile.id)
     return profile
コード例 #3
0
 def _do_update(self, profile_id, profile_data):
     """
     Updates the existing profile in the PayPal account with the specified id, replacing
     all data with the specified data.
     """
     profile = WebProfile.find(profile_id)
     result = profile.update(profile_data)
     if not result:
         raise CommandError("Could not update web profile: {}".format(profile.error))
     # have to re-fetch to show the new state
     profile = WebProfile.find(profile_id)
     log.info("Updated profile %s.", profile.id)
     return profile
コード例 #4
0
 def handle_show(self, options):
     """Wrapper for paypalrestsdk Find operation."""
     if not options.get('profile_id'):
         raise CommandError("Action `show` requires a profile_id to be specified.")
     profile_id = options.get('profile_id')
     profile = WebProfile.find(profile_id)
     self.print_json(profile.to_dict())
コード例 #5
0
    def handle_enable(self, args):
        """
        Given the id of an existing web profile, save a reference to it in the database.

        When PayPal checkouts are set up, we can look this profile up by name and, if
        found, specify its id in our API calls to customize the payment page accordingly.
        """
        profile_id = self._get_argument(args, 'profile_id', 'enable')
        profile = WebProfile.find(profile_id)
        self._do_enable(profile.id, profile.name)
コード例 #6
0
 def handle_list(self, args):  # pylint: disable=unused-argument
     """Wrapper for paypalrestsdk List operation."""
     profiles = WebProfile.all()
     result = []
     try:
         result = [profile.to_dict() for profile in profiles]
     except KeyError:
         # weird internal paypal sdk behavior; it means the result was empty.
         pass
     self.print_json(result)
コード例 #7
0
 def _inverse_paypal_profile_info(self):
     paypal = self._get_paypal_api()
     for record in self:
         if not record.paypal_profile_info:
             continue
         info = json.loads(record.paypal_profile_info)
         if record.paypal_profile_id:
             web_profile = WebProfile.find(record.paypal_profile_id,
                                           api=paypal)
             if not web_profile.update(info):
                 raise UserError(
                     _("Error updating paypal profile:\n %s") %
                     web_profile.error)
         else:
             web_profile = WebProfile(info, api=paypal)
             if not web_profile.create():
                 raise UserError(
                     _("Error creating paypal profile:\n %s") %
                     web_profile.error)
             record.paypal_profile_id = web_profile.id
コード例 #8
0
    def handle_enable(self, options):
        """
        Given the id of an existing web profile, save a reference to it in the database.

        When PayPal checkouts are set up, we can look this profile up by name and, if
        found, specify its id in our API calls to customize the payment page accordingly.
        """
        if not options.get('profile_id'):
            raise CommandError("Action `enable` requires a profile_id to be specified.")
        profile_id = options.get('profile_id')
        profile = WebProfile.find(profile_id)
        self._do_enable(profile.id, profile.name)
コード例 #9
0
    def handle_delete(self, args):
        """
        Delete a web profile from the configured PayPal account.

        Before deleting this function checks to make sure a matching profile is not
        presently enabled.  If the specified profile is enabled the command will fail
        with an error, since leaving things in that state would cause the application
        to send invalid profile ids to PayPal, causing errors.
        """
        profile_id = self._get_argument(args, 'profile_id', 'delete')
        if PaypalWebProfile.objects.filter(id=profile_id).exists():
            raise CommandError(
                "Web profile {} is currently enabled.  You must disable it before you can delete it.".format(profile_id)
            )

        profile = WebProfile.find(profile_id)
        if not profile.delete():
            raise CommandError("Could not delete web profile: {}".format(profile.error))
        log.info("Deleted profile: %s", profile.id)
        self.print_json(profile.to_dict())
コード例 #10
0
 def handle_show(self, args):
     """Wrapper for paypalrestsdk Find operation."""
     profile_id = self._get_argument(args, 'profile_id', 'show')
     profile = WebProfile.find(profile_id)
     self.print_json(profile.to_dict())
コード例 #11
0
import string

logging.basicConfig(level=logging.INFO)

# Name needs to be unique so just generating a random one
wpn = ''.join(random.choice(string.ascii_uppercase) for i in range(12))

web_profile = WebProfile({
    "name": wpn,
    "presentation": {
        "brand_name": "YeowZa Paypal",
        "logo_image": "http://s3-ec.buzzfed.com/static/2014-07/18/8/enhanced/webdr02/anigif_enhanced-buzz-21087-1405685585-12.gif",
        "locale_code": "US"
    },
    "input_fields": {
        "allow_note": True,
        "no_shipping": 1,
        "address_override": 1
    },
    "flow_config": {
        "landing_page_type": "billing",
        "bank_txn_pending_url": "http://www.yeowza.com"
    }
})

if web_profile.create():
    print(("Web Profile[%s] created successfully" % (web_profile.id)))
else:
    print((web_profile.error))

payment = Payment({
import string

logging.basicConfig(level=logging.INFO)

# Name needs to be unique so just generating a random one
wpn = ''.join(random.choice(string.ascii_uppercase) for i in range(12))

web_profile = WebProfile({
    "name": wpn,
    "presentation": {
        "brand_name": "YeowZa Paypal",
        "logo_image": "http://s3-ec.buzzfed.com/static/2014-07/18/8/enhanced/webdr02/anigif_enhanced-buzz-21087-1405685585-12.gif",
        "locale_code": "US"
    },
    "input_fields": {
        "allow_note": True,
        "no_shipping": 1,
        "address_override": 1
    },
    "flow_config": {
        "landing_page_type": "billing",
        "bank_txn_pending_url": "http://www.yeowza.com"
    }
})

if web_profile.create():
    print("Web Profile[%s] created successfully"%(web_profile.id))
else:
    print(web_profile.error)

payment = Payment({
コード例 #13
0
from paypalrestsdk import WebProfile, ResourceNotFound
import logging

logging.basicConfig(level=logging.INFO)

try:
    web_profile = WebProfile.find("XP-3NWU-L5YK-X5EC-6KJM")
    print("Got Web Profile Details for Web Profile[%s]" % (web_profile.id))

    web_profile_update_attributes = [
        {
            "op": "replace",
            "path": "/presentation/brand_name",
            "value": "New Brand Name"
        }
    ]

    if web_profile.replace(web_profile_update_attributes):
        web_profile = WebProfile.find("XP-3NWU-L5YK-X5EC-6KJM")
        print("Web Profile [%s] name changed to [%s]" %
              (web_profile.id, web_profile.presentation.brand_name))
    else:
        print(web_profile.error)

except ResourceNotFound as error:
    print("Web Profile Not Found")
コード例 #14
0
from paypalrestsdk import WebProfile
import logging
logging.basicConfig(level=logging.INFO)

try:
    web_profile = WebProfile.find("XP-3NWU-L5YK-X5EC-6KJM")
    print(("Got Details for Web Profile[%s]" % (web_profile.id)))

except ResourceNotFound as error:
    print("Web Profile Not Found")
コード例 #15
0
ファイル: delete.py プロジェクト: sroberts3612/sa
from paypalrestsdk import WebProfile
import logging
logging.basicConfig(level=logging.INFO)

web_profile = WebProfile.find("XP-9R62-L4QJ-M8H6-UNV5")

if web_profile.delete():
    print("WebProfile deleted")
else:
    print(web_profile.error)
コード例 #16
0
 def _compute_paypal_profile_info(self):
     paypal = self._get_paypal_api()
     for record in self.filtered(lambda a: a.paypal_profile_id):
         web_profile = WebProfile.find(record.paypal_profile_id, api=paypal)
         record.paypal_profile_info = json.dumps(web_profile.to_dict())
コード例 #17
0
ファイル: delete.py プロジェクト: fsiddi/PayPal-Python-SDK
from paypalrestsdk import WebProfile
import logging
logging.basicConfig(level=logging.INFO)

web_profile = WebProfile.find("XP-9R62-L4QJ-M8H6-UNV5")

if web_profile.delete():
  print("WebProfile deleted")
else:
  print(web_profile.error)
コード例 #18
0
from paypalrestsdk import WebProfile
import logging
logging.basicConfig(level=logging.INFO)

history = WebProfile.all()
print(history)

print("List WebProfile:")
for profile in history:
    print("  -> WebProfile[%s]" % (profile.name))