Exemplo n.º 1
0
 def init_api(self) -> mercadopago.MP:
     if self.settings.get('client_id') and not self.settings.get('secret'):
         mp = mercadopago.MP(self.settings.get('client_id'))
     else:
         mp = mercadopago.MP(self.settings.get('client_id'),
                             self.settings.get('secret'))
     return mp
    def __init__(self, acquirer):
        self.url = "https://api.mercadopago.com"
        mp_token = mercadopago.MP(acquirer.mercadopago_client_id,
                                  acquirer.mercadopago_client_secret)
        if acquirer.environment == "test":
            access_token = acquirer.mercadopago_test_access_token
        else:
            access_token = mp_token.get_access_token()

        # print("-----mp-----",mp)
        self.mp = mercadopago.MP(access_token)
        self.accessToken = access_token
Exemplo n.º 3
0
 def compute_mercadopago_url(self):
     if self.state == 'open':
         preference = {
             'items': [{
                 'title': self.name,
                 'quantity': 1,
                 'currency_id': 'ARS',
                 'unit_price': self.amount_total
             }]
         }
         computed_url = None
         mercadopago_client_obj = self.env['ir.config_parameter'].search([
             ('key', '=', 'mercadopago_client')
         ])
         if mercadopago_client_obj:
             mercadopago_key_obj = self.env['ir.config_parameter'].search([
                 ('key', '=', 'mercadopago_key')
             ])
             if mercadopago_key_obj:
                 mercadopago_client = mercadopago_client_obj.value
                 mercadopago_key = mercadopago_key_obj.value
                 mp = mercadopago.MP(mercadopago_client, mercadopago_key)
                 preferenceResult = mp.create_preference(preference)
                 url = preferenceResult['response']['init_point']
                 computed_url = url
         if not computed_url:
             self.mercadopago_url = 'N/A'
         else:
             self.mercadopago_url = computed_url
def index(req, **kwargs):
	preference = {
		"items": [
			{
				"title": "Multicolor kite",
				"quantity": 1,
				"currency_id": "CURRENCY_ID", # Available currencies at: https://api.mercadopago.com/currencies
				"unit_price": 10.0
			}
		]
	}
	mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

	preferenceResult = mp.create_preference(preference)

	url = preferenceResult["response"]["init_point"]

	output = """
	<!doctype html>
	<html>
		<head>
			<title>Pay</title>
		</head>
		<body>
			<a href="{url}">Pay</a>
		</body>
	</html>
	""".format (url=url)

	return output
Exemplo n.º 5
0
def index():
    mp = mercadopago.MP(myconf.take('mercadopago.client_id'),
                        myconf.take('mercadopago.client_secret'))
    print(myconf.take('mercadopago.client_id'),
          myconf.take('mercadopago.client_secret'))
    # creamos un dict con los datos del pago solicitado:
    preference = {
        "items": [{
            "title":
            "Samsung J7",
            "description":
            "celular nueva gama",
            "quantity":
            1,
            "unit_price":
            9000,
            "currency_id":
            "ARS",
            "picture_url":
            "https://www.mercadopago.com/org-img/MP3/home/logomp3.gif"
        }],
        "marketplace_fee":
        2.29  # fee to collect
    }
    # llamamos a MP para que cree un link...
    preferenceResult = mp.create_preference(preference)
    try:
        url = preferenceResult["response"]["sandbox_init_point"]
        redirect(url)
    except:
        raise
        response.view = "generic.html"
        return {"pref": preferenceResult}
Exemplo n.º 6
0
def __mercadoPago(carrito):
    mp = mercadopago.MP('TEST-1534881774722776-120914-533d8cfe4ab6b720548a020387446186-129446137')

    # user = request.user
    # articulo_orden = ArticuloOrden.objects.filter(usuario=user, finalizado=False)
    items=[]
    for key,value in carrito.items():
        datos = {
            'title': value['name'],
            'quantity': value['quantity'],
            'currency_id': 'ARS',
            'unit_price': float(value['price']),
        }
        items.append(datos)

    preference = {
        "items":items,
        "back_urls": [
            {
                "success": reverse('eess:payment_received')
            },
        ],
        "auto_return": "approved",
    }    

    preferenceResult = mp.create_preference(preference)
    url_forward = preferenceResult['response']['init_point']
    print(preferenceResult)
    return HttpResponseRedirect(url_forward)
Exemplo n.º 7
0
 def compute_mercadopago_url(self):
     if self.state == 'sale':
         preference = {
             'items': [{
                 'title': self.name,
                 'quantity': 1,
                 'currency_id': 'ARS',
                 'unit_price': self.amount_total
             }]
         }
         computed_url = None
         acquirer_id = self.env['payment.acquirer'].sudo().search(
             [('provider', '=', 'mercadopago')], limit=1)
         if acquirer_id.mercadopago_client_id and acquirer_id.mercadopago_client_secret:
             mp = mercadopago.MP(acquirer_id.mercadopago_client_id,
                                 acquirer_id.mercadopago_client_secret)
             preferenceResult = mp.create_preference(preference)
             if acquirer_id.environment == 'prod':
                 url = preferenceResult['response']['init_point']
             else:
                 url = preferenceResult['response']['sandbox_init_point']
             computed_url = url
         if not computed_url:
             self.mercadopago_url = 'N/A'
         else:
             self.mercadopago_url = computed_url
Exemplo n.º 8
0
def index(req, **kwargs):
    # Create an instance with your MercadoPago credentials (CLIENT_ID and CLIENT_SECRET):
    # Argentina: https://www.mercadopago.com/mla/herramientas/aplicaciones
    # Brasil: https://www.mercadopago.com/mlb/ferramentas/aplicacoes
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    filters = {"external_reference": "Bill001"}

    # Search payment data according to filters
    searchResult = mp.search_payment(filters)

    # Show payment information
    output = """
    <!doctype html>
    <html>
        <head>
            <title>Search payments</title>
        </head>
        <body>
            <table border='1'>
                <tr><th>id</th><th>external_reference</th><th>status</th></tr>"""
    for payment in searchResult["response"]["results"]:
        output += "<tr>"
        output += "<td>" + payment["id"] + "</td>\n"
        output += "<td>" + payment["external_reference"] + "</td>\n"
        output += "<td>" + payment["status"] + "</td>\n"
        output += "</tr>"
    output += """
            </table>
        </body>
    </html>
    """

    return output
Exemplo n.º 9
0
def MercadoPago(mp_public_key, mp_access_token, id_pedido, total):
    # INTEGRACIÓN CON MERCADO PAGO
    mp = mercadopago.MP(mp_public_key, mp_access_token)
    Nombre_producto = "Compra en: Cat People"
    Total = total
    preference = {
        "items": [{
            "id": 'ID-CAT-' + str(id_pedido),
            "title": Nombre_producto,
            "currency_id": "CLP",
            "description": "Compra a Be Fashion",
            "quantity": 1,
            "unit_price": Total
        }],
        "back_urls": {
            "success": "localhost:8000/compra_exito/",
            "failure": "localhost:8000/compra_fallo/",
            "pending": "localhost:8000/compra_proceso/"
        },
        "external_reference":
        id_pedido
    }
    preferenceResult = mp.create_preference(preference)
    obj = {'preferenceResult': preferenceResult, 'preference': preference}
    return obj
Exemplo n.º 10
0
  def test_get_preference(self):

    preference = {
      "items": [
        {
          "title": "sdk-python",
          "quantity": 1,
          "currency_id": "ARS",
          "unit_price": 10.5
        }
      ]
    }

    mp = mercadopago.MP(client_id, client_secret)

    create_preference_result = mp.create_preference(preference)

    #print(create_preference_result)

    self.assertEquals(create_preference_result["status"], 201)

    created_preference_id = create_preference_result["response"]["id"]

    get_preference_result = mp.get_preference(created_preference_id)

    self.assertEquals(get_preference_result["status"], 200)

    obtained_preference = get_preference_result["response"]

    self.assertEquals(obtained_preference["items"][0]["title"], "sdk-python")
    self.assertEquals(obtained_preference["items"][0]["quantity"], 1)
    self.assertEquals(obtained_preference["items"][0]["currency_id"], "ARS")
    self.assertEquals(obtained_preference["items"][0]["unit_price"], 10.5)

    print("test_get_preference OK!")
def mercadopago():
    # Conecta ao mercado pago para fazer o pagamento da fatura
    # Conect at mercadopago
    import mercadopago
    import json
    fatura = db.faturas_cliente(request.args(0))
    # https://www.mercadopago.com.br/developers/en/plugins_sdks/sdks/official/python/
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    preference = {
        "items": [{
            "back_url": URL('default', 'index'),
            "title": "Fatura #%s, %s" % ("6932", "Toy car"),
            "quantity": 1,
            "currency_id": "BRL",
            "unit_price": 19.9,
            "payer": {
                "name": "Client First Name",
                "surname": "Client Last Name",
                "email": "*****@*****.**",
            },
            "back_urls": {
                "success": URL('defautl', 'index'),
                "failure": URL('default', 'faturas'),
                "pending": URL('')
            }
        }]
    }

    preferenceResult = mp.create_preference(preference)
    redirect(preferenceResult['response']['init_point'])
    return json.dumps(preferenceResult, indent=4)
Exemplo n.º 12
0
def purchase(request, product_id):
    product = get_object_or_404(Product, id=product_id)

    preference = {
        "items": [{
            "title": product.name,
            "quantity": 1,
            "currency_id": "ARS",
            "unit_price": float(product.price)
        }],
        "back_urls": {
            "success": request.build_absolute_uri(reverse('mp-back-success')),
            "failure": request.build_absolute_uri(reverse('mp-back-failure')),
            "pending": request.build_absolute_uri(reverse('mp-back-pending')),
        }
    }

    mp = mercadopago.MP(settings.MP_CLIENT_ID, settings.MP_CLIENT_SECRET)

    preferenceResult = mp.create_preference(preference)
    order = Order.objects.create(product=product,
                                 user=request.user,
                                 preference=preferenceResult["response"]["id"])

    payment_url = preferenceResult["response"]["sandbox_init_point"]

    return redirect(payment_url)
Exemplo n.º 13
0
def index(req, **kwargs):
    preference = {
      "items": [
        {
          "title": "sdk-python",
          "quantity": 1,
          "currency_id": "ARS",
          "unit_price": 10.5
        }
      ]
    }
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    preferenceResult = mp.preference.create(preference)

    url = preferenceResult["response"]["init_point"]

    output = """
    <!doctype html>
    <html>
        <head>
            <title>MercadoPago SDK - Create Preference and Show Checkout Example</title>
        </head>
      <body>
        <a href="{url}" name="MP-Checkout" class="blue-l-arall-rn">Pagar</a>
        <script type="text/javascript" src="//resources.mlstatic.com/mptools/render.js"></script>
      </body>
    </html>
    """.format (url=url)
    
    return output
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    filters = {"external_reference": "ext1425"}

    searchResult = mp.search_payment(filters)

    return json.dumps(searchResult, indent=4)
Exemplo n.º 15
0
def index(req, **kwargs):
        mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")
        paymentInfo = mp.get_payment (kwargs["id"])

        if paymentInfo["status"] == 200:
            return json.dumps(paymentInfo, indent=4)
        else:
            return None   
Exemplo n.º 16
0
def funcionesComprasAdmin():
    if request.method == 'GET':
        resultado = listadocompras()
        return jsonify(resultado)

    if request.method == 'DELETE':
        comp = Compra()
        comp.set_carrito(request.args['carrito'])
        bajacompra(comp)
        return "ok"

    if request.method == 'POST':
        now = datetime.now()
        comp = Compra()
        comp.set_carrito(request.args['carrito'])
        comp.set_estado('ESPERA')
        comp.set_fecha(
            str(now.year) + '-' + str(now.month) + '-' + str(now.day))
        comp.set_hora(
            str(now.hour) + ':' + str(now.minute) + ':' + str(now.second))
        comp.set_total(request.args['total'])
        comp.set_usuario(request.args['usuario'])
        altacompra(comp)
        aux = request.args.getlist('items[]')
        items = []
        for item in aux:
            items.append(json.loads(item))
        print(items)
        preference = {
            "items": items,
            "back_urls": {
                'pending':
                'https://flask-ecommerce-mate.herokuapp.com/finalizarcompra?carrito='
                + request.args['carrito'],
                'success':
                'https://flask-ecommerce-mate.herokuapp.com/finalizarcompra?carrito='
                + request.args['carrito'],
                'failure':
                'https://flask-ecommerce-mate.herokuapp.com/cancelarcompra?carrito='
                + request.args['carrito']
            },
            "auto_return": 'approved'
        }
        mp = mercadopago.MP(
            "TEST-2010310189255433-020423-ab4183ae168fc66489c83ac9a88b909a-522644875"
        )
        mp.sandbox_mode(True)

        preferenceResult = mp.create_preference(preference)
        url = preferenceResult["response"]["init_point"]
        return url

    if request.method == 'PUT':
        comp = Compra()
        comp.set_carrito(request.args['carrito'])
        comp.set_estado(request.args['estado'])
        modificarcompra(comp)
        return "ok"
Exemplo n.º 17
0
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    paymentInfo = mp.get_payment_info(kwargs["id"])

    if paymentInfo["status"] == 200:
        return paymentInfo["response"]
    else:
        return None
Exemplo n.º 18
0
def getForm_mercado_pago(request):
    mp = mercadopago.MP(settings.CLIENT_ID, settings.CLIENT_SECRET)

    if request.GET['carro']:
        try:
            carro = Carro.objects.get(pk=request.GET['carro'])
        except Carro.DoesNotExist:
            carro = False
        if carro:
            pedido = carro.pedido
            preference = {
                "items": [],
                'payer': {
                    'name':
                    "%s %s" % (carro.propietario.first_name,
                               carro.propietario.last_name),
                    'email':
                    carro.propietario.email
                },
                'shipments': {
                    'cost': float(pedido.metodoenvio.precio),
                },
                'back_urls': {
                    'success':
                    request.build_absolute_uri(
                        reverse('retorn_mercado_pago',
                                kwargs={'pedido': pedido.id})),
                    'pending':
                    "%s" % (settings.MERCADO_PAGO_FAIL),
                    'failure':
                    "%s" % (settings.MERCADO_PAGO_FAIL),
                },
                'notification_url': "%s/mercadopago_ipn/" % (settings.DOMAIN),
            }
            for linea in carro.lineas.all():
                item = {
                    'title': linea.producto.full_name,
                    'picture_url': linea.producto.get_thum(0),
                    'quantity': linea.cantidad,
                    'currency_id': "PEN",
                    "unit_price": float(linea.get_precio())
                }
                preference['items'].append(item)

            preferenceResult = mp.create_preference(preference)

            return HttpResponse(json.dumps(preferenceResult, indent=4),
                                content_type='application/json;charset=utf8')
        else:
            return HttpResponse(json.dumps({'error': 'No Existe Carro'},
                                           indent=4),
                                content_type='application/json;charset=utf8')
    else:
        return HttpResponse(json.dumps({'error': 'Solicitud no Valida'},
                                       indent=4),
                            content_type='application/json;charset=utf8')
Exemplo n.º 19
0
 def __init__(self,
              access_token: str,
              sandbox_mode: bool = False,
              **kwargs) -> None:
     self.access_token = access_token
     self.sandbox_mode = sandbox_mode
     self.init_point = 'sandbox_init_point' if self.sandbox_mode else 'init_point'
     self.mp = mercadopago.MP(self.access_token)
     self.mp.sandbox_mode(self.sandbox_mode)
     super(MercadoPagoProvider, self).__init__(**kwargs)
Exemplo n.º 20
0
    def __init__(self, params):
        self._params = params

        # traer el token de la configuración, si no existe lo creamos
        access_token = self._params.get_param('mercadopago_access_token', default=False)
        if not access_token:
            access_token = self._regenerate_token()

        # crear el objeto mp y guardarlo
        self._mp = mercadopago.MP(access_token)
Exemplo n.º 21
0
def mercadopago_ipn(request):
    mp = mercadopago.MP(settings.CLIENT_ID, settings.CLIENT_SECRET)

    paymentInfo = mp.get_payment_info(request.GET.get('id'))

    print paymentInfo

    # Show payment information
    if paymentInfo["status"] == 200:
        return paymentInfo["response"]
    else:
        return None
Exemplo n.º 22
0
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    filters = {
        "status": "approved",
        "operation_type": "regular_payment",
        "payer_email": "[email protected] [email protected]"
    }

    searchResult = mp.search_payment(filters)

    return json.dumps(searchResult, indent=4)
Exemplo n.º 23
0
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")
    
    filters = {
        "status": "approved",
        "offset": 0,
        "limit": 10
    }

    searchResult = mp.search_payment(filters)

    return json.dumps(searchResult, indent=4)
Exemplo n.º 24
0
def cart_confirm_mp(request):
    if request.method == 'GET':
        pass

    preference = {
        "items": [
            {
                "title": "Título del art.",
                "quantity": 1,
                "currency_id": "ARS",  # Available currencies at: https://api.mercadopago.com/currencies
                "unit_price": 1800
            }
        ],
        "payers": [
            {
                "name": "Marcelo",
                "surname": "Longobardi",
                "email": "*****@*****.**",
                "phone.number": "3816168252",
                "identification": {
                    "type": "DNI",
                    "number": "20203911",
                },
                "address": {
                    "zip_code": "4107",
                    "street_name": "LA RIOJA",
                    "street_number": "150",
                }
            },
        ],
        # "back_urls": [
        #     {
        #         "success": reverse('eess:payment_received'),
        #         "failure": reverse('eess:payment_failure'),
        #         "pending": reverse('eess:payment_pending')
        #     },
        # ]
    }

    access_token = "TEST-1534881774722776-120914-533d8cfe4ab6b720548a020387446186-129446137"
    mp = mercadopago.MP(access_token)
    mp.sandbox_mode(True)                   # rw
    preferenceresult = mp.create_preference(preference)

    # back_urls
    preferenceresult['response']['back_urls']['success'] = reverse('eess:payment_received')
    preferenceresult['response']['back_urls']['failure'] = reverse('eess:payment_failure')
    preferenceresult['response']['back_urls']['pending'] = reverse('eess:payment_pending')

    # url = preferenceresult["response"]["init_point"]
    url = preferenceresult["response"]["sandbox_init_point"]
    return redirect(url)
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    filters = {
        "payment_type_id": "credit_card",
        "operation_type": "regular_payment",
        "installments": 12,
        "description": "Your-item-title"
    }

    searchResult = mp.search_payment(filters)

    return json.dumps(searchResult, indent=4)
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    filters = {
        "payment_type": "credit_card",
        "operation_type": "regular_payment",
        "range": "date_created",
        "begin_date": "2014-10-21T00:00:00Z",
        "end_date": "2014-10-25T24:00:00Z"
    }

    searchResult = mp.search_payment(filters)

    return json.dumps(searchResult, indent=4)
def index(req, **kwargs):
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")
    
    filters = {
        "status": "approved",
        "operation_type": "regular_payment",
        "range": "date_created",
        "begin_date": "NOW-1MONTH",
        "end_date": "NOW"
    }

    searchResult = mp.search_payment(filters)

    return json.dumps(searchResult, indent=4)
Exemplo n.º 28
0
def index(req, **kwargs):
    # Create an instance with your MercadoPago credentials (CLIENT_ID and CLIENT_SECRET):
    # Argentina: https://www.mercadopago.com/mla/herramientas/aplicaciones
    # Brasil: https://www.mercadopago.com/mlb/ferramentas/aplicacoes
    mp = mercadopago.MP("CLIENT_ID", "CLIENT_SECRET")

    # Get the payment reported by the IPN. Glossary of attributes response in https://developers.mercadopago.com
    paymentInfo = mp.get_payment_info(kwargs["id"])

    # Show payment information
    if paymentInfo["status"] == 200:
        return paymentInfo["response"]
    else:
        return None
    def gerar_checkout(self, cr, context=None):
        if not self.mercado_pago_id_preferencia:
            mp = mercadopago.MP(self.company_id.mercado_pago_access_token)

            response = mp.get("/v1/customers/search", {
                "email": self.partner_id.email
            })

            cliente = None

            if response["status"] == 200:
                if len(response['response']['results']) > 0:
                    cliente = response['response']['results'][0]

            if not cliente:
                if self.partner_id.company_type == 'person':
                    type = "CPF"
                else:
                    type = "CNPJ"

                cliente = mp.post("/v1/customers", {
                    "name": self.partner_id.name,
                    "email": self.partner_id.email,
                    "identification": {
                        "type": type,
                        "number": self.partner_id.vat
                    }
                })

            preferencia = self.criar_preferencia(cr, mp, cliente)

            if preferencia['status'] == 201:
                self.write({
                    'mercado_pago_init_point': preferencia['response']['init_point'],
                    'mercado_pago_sandbox_init_point': preferencia['response']['sandbox_init_point'],
                    'mercado_pago_id_preferencia': preferencia['response']['id']
                })

            return {
                'type': 'ir.actions.act_url',
                'target': 'new',
                'url': self.mercado_pago_init_point,
            }
        else:
            return {
                'type': 'ir.actions.act_url',
                'target': 'new',
                'url': self.mercado_pago_init_point,
            }
Exemplo n.º 30
0
def create_mercadopago_checkout(request):
    
    if request.is_secure():
        protocol = 'https'
    else:
        protocol = 'http'
    
    host = protocol +"://" + request.get_host()
    
    mp = mercadopago.MP(
            settings.MERCADOPAGO_CLIENT_ID, 
            settings.MERCADOPAGO_CLIENT_SECRET
        )
    
    items = []
    
    cart = Cart(request)
    
    for c in cart.items():
        
        items.append({
                "title": c.product.title,
                "quantity": 1,
                "currency_id": "VEF",
                "unit_price": c.product.pricing
            })

    preference = {
        "items": items,
        "external_reference": {
            "user_id":request.user.id,
            "shipping_addresss_id":request.session['shipping_address'],
            "billing_addresss_id":request.session['billing_address'],
            "cart_id":cart.cart_id,
        },
        "back_urls": {
            "failure": host + reverse("payment_cancel"),
            "pending": host + reverse("payment_fail"),
            "success": host + reverse("payment_sucesss")
        },
        "notification_url": host + reverse("payment_mercadopago_process")
    }
    
    preferenceResult = mp.create_preference(preference)
    
    return Response(
      {'result':preferenceResult['response']['init_point']} 
    )