Exemple #1
0
    def create(cls, provider, addon, payment_account):
        """Parameters:

        - provider:
            The provider that the product is to be created for. (currently only
            `bango`)
        - addon:
            The app that the product is being created for.
        - payment_account:
            The PaymentAccount object to tie the app to.

        """
        secret = generate_key(48)
        generic_product = client.upsert(
            method='product',
            params={'seller': payment_account.seller_uri, 'secret': secret,
                    'external_id': addon.pk},
            lookup_by=['external_id'])
        product_uri = generic_product['resource_uri']

        if provider == 'bango':
            uri = cls._create_bango(
                product_uri, addon, payment_account, secret)
        else:
            uri = ''

        return cls.objects.create(addon=addon, provider=provider,
                                  set_price=addon.premium.price.price,
                                  account_uri=payment_account.uri,
                                  product_uri=uri)
Exemple #2
0
    def _create_bango(cls, product_uri, addon, payment_account, secret):
        # Create the Bango product via Solitude.
        res = client.upsert(
            method='product_bango',
            params={'seller_bango': payment_account.uri,
                    'seller_product': product_uri,
                    'name': addon.name,
                    'categoryId': 1,
                    'secret': secret},
            lookup_by=['seller_product'])
        product_uri = res['resource_uri']
        bango_number = res['bango_id']

        cls._push_bango_premium(
            bango_number, product_uri, float(addon.premium.price.price))

        return product_uri