def pagseguro_form_generate_values(self, values): pagseguro_tx_values = dict(values) pagseguro_tx_values.update({ 'pagseguro_email': self.pagseguro_email_account, 'pagseguro_token': self.pagseguro_token, 'amount': format(values['amount'], '.2f') }) if self.environment == 'prod': config = {'sandbox': False} else: config = {'sandbox': True} pg = PagSeguro(email=self.pagseguro_email_account, token=self.pagseguro_token, config=config) pg.reference_prefix = None pg.reference = pagseguro_tx_values['reference'] pg.items = [ { "id": "0001", "description": pagseguro_tx_values['reference'], "amount": pagseguro_tx_values['amount'], "quantity": 1 }, ] base_url = self.env['ir.config_parameter'].sudo().get_param( 'web.base.url') pg.redirect_url = base_url + pagseguro_tx_values['return_url'] _logger.info("Redirect Url: %s" % (pg.redirect_url)) pg.notification_url = base_url + "/payment/pagseguro/feedback" response = pg.checkout() _logger.info("Response Errors: %s" % (response.errors)) pagseguro_tx_values.update({'payment_url': response.payment_url}) # _logger.info(values['reference']) _logger.info("Transaction Values: %s" % (pagseguro_tx_values)) return pagseguro_tx_values
def checkout_pg(sender, shipping, cart): pg = PagSeguro(email=app.config['EMAIL'], token=app.config['TOKEN']) pg.sender = sender shipping['type'] = pg.SEDEX pg.shipping = shipping pg.extra_amount = "%.2f" % float(app.config['EXTRA_AMOUNT']) pg.redirect_url = app.config['REDIRECT_URL'] pg.notification_url = app.config['NOTIFICATION_URL'] pg.items = cart.items for item in cart.items: item['amount'] = "%.2f" % float(app.config['EXTRA_AMOUNT']) return pg
def checkout_pg(sender, shipping, cart): pagseguro = PagSeguro(email=app.config['EMAIL'], token=app.config['TOKEN']) pagseguro.sender = sender shipping['type'] = pagseguro.SEDEX pagseguro.shipping = shipping pagseguro.extra_amount = "%.2f" % float(app.config['EXTRA_AMOUNT']) pagseguro.redirect_url = app.config['REDIRECT_URL'] pagseguro.notification_url = app.config['NOTIFICATION_URL'] pagseguro.items = cart.items for item in cart.items: item['amount'] = "%.2f" % float(app.config['EXTRA_AMOUNT']) return pagseguro
def post(self, request, format=None): conferencia_pk = request.data.get("conferencia") inscricao_pk = request.data.get("inscricao") inscricao = Inscricao.objects.get(pk=inscricao_pk, conferencia_id=conferencia_pk) conferencia = inscricao.conferencia pg = PagSeguro( email=settings.PAGSEGURO_EMAIL, token=settings.PAGSEGURO_TOKEN, ) pg.sender = { "name": inscricao.nome, "area_code": inscricao.ddd, "phone": inscricao.cleanned_telefone(), "email": inscricao.email, } pg.shipping = { "type": pg.NONE, "street": inscricao.endereco, "number": inscricao.numero, "complement": inscricao.complemento, "district": inscricao.bairro, "postal_code": inscricao.cep, "city": inscricao.cidade, "state": inscricao.uf, "country": "BRA" } pg.reference_prefix = "REFID_" pg.reference = inscricao.pk pg.items = [ { "id": "0001", "description": conferencia.titulo, "amount": inscricao.valor_total, "quantity": 1, }, ] url_base = reverse_lazy( 'home', kwargs={"conferencia": conferencia.titulo_slug}) redirect_url = "{}{}".format(settings.BASE_URL, url_base) pg.redirect_url = redirect_url pg.notification_url = settings.NOTIFICATION_URL response = pg.checkout() inscricao.payment_reference = pg.reference inscricao.status = 1 inscricao.save() return Response({ "code": response.code, "transaction": response.transaction, "date": response.date, "payment_url": response.payment_url, "payment_link": response.payment_link, "errors": response.errors, "pre_ref": pg.reference_prefix, "reference": pg.reference, })