vipps

Python bindings for the Vipps API


Keywords
vipps, api, payments
License
MIT
Install
pip install vipps==0.1

Documentation

Vipps Python Library

The Unofficial* Vipps Python library provides convenient access to the Vipps AS API from applications written in the Python language.

Currently Supports:

Documentation

See the Vipps Developers resources

Installation

pip install vipps

Requirements

Test on Python3.7

  • Python 3.7
  • requests 2+

Usage

Vipps eCommerce API version 2. Initiate payment and get redirect Url:

from vipps import VippsEcomApi


payment = VippsEcomApi(
    client_id="fb492b5e-7907-4d83-ba20-c7fb60ca35de",
    client_secret="Y8Kteew6GE2ZmeycEt6egg==",
    vipps_subscription_key="0f14ebcab0ec4b29ae0cb90d91b4a84a",
    merchant_serial_number="123456",
    vipps_server="https://apitest.vipps.no",
    callback_prefix="https://example.com/vipps/callbacks-for-payment-updates"
    fall_back="https://example.com/vipps/fallback-order-result-page/acme-shop-123-order123abc"
)

# Initiate payment
initiate = payment.init_payment(
    order_id="acme-shop-123-order123abc",
    amount=200,
    transaction_text="One pair of Vipps socks",
)

# Redirect Url
redirect_url = initiate.get("url")

# Capture Payment
capture = payment.capture_payment(
    order_id="acme-shop-123-order123abc",
    amount=200,
    transaction_text="One pair of Vipps socks",
)

# Cancel Payment
cancel = payment.cancel_payment(
    order_id="acme-shop-123-order123abc",
    transaction_text="One pair of Vipps socks",
)

# Refund Payment
refund = payment.refund_payment(
    order_id="acme-shop-123-order123abc",
    amount=200,
    transaction_text="One pair of Vipps socks",
)

# Payment details
details = payment.details_payment(
    order_id="acme-shop-123-order123abc"
)

*Unofficial

I am not affiliate or associate of the Vipps AS in any possible way. Used publicly available info to build this software.

Create PyPI package

  1. Docs:
  • packaging.python.org
  • I'l do it in docker:
  • touch Dockerfile
  • nano Dockerfile
    # Dockerfile
    FROM python:latest
    
    RUN apt update
    
    ENV PYTHONDONTWRITEBYTECODE 1
    
    ENV PYTHONUNBUFFERED 1
    
    RUN pip install --upgrade pip    
  • docker build -t ipy .
  • docker run -it -v ${PWD}:/home --name py ipy bash
  1. Setup:
  • mkdir /home/vipps-python
  • cd /home/vipps-python
  • mkdir vipps
  • mkdir tests
  • touch vipps/__init__.py
  • touch LICENSE
  • touch README.md
  • touch pyproject.toml
  • touch setup.cfg
  • touch setup.py
  • nano pyproject.toml
    # pyproject.toml
    [build-system]
    requires = [
        "setuptools>=42",
        "wheel"
    ]
    build-backend = "setuptools.build_meta"
  • nano setup.cfg
    # setup.cfg
    [metadata]
    name = vipps
    version = 0.3
    author = Almaz Kunpeissov
    author_email = hi@akun.dev
    description = Python bindings for the Vipps API
    long_description = file: README.md
    long_description_content_type = text/markdown
    url = https://github.com/almazkun/vipps-python
    keywords = vipps api payments
    license = MIT License
    license_files = LICENSE
    project_urls =
        Documentation = https://github.com/almazkun/vipps-python
        Source = https://github.com/almazkun/vipps-python
        Tracker = https://github.com/almazkun/vipps-python/issues
    classifiers =
        Development Status :: 2 - Pre-Alpha
        Intended Audience :: Developers
        Operating System :: OS Independent
        Programming Language :: Python :: 3 :: Only
        Programming Language :: Python :: 3.7
        Programming Language :: Python :: Implementation :: PyPy
        Topic :: Software Development :: Libraries :: Python Modules
    
    [options]
    packages = find:
    python_requires = >=3.7
    include_package_data = true
    zip_safe = false
    install_requires = requests >= 2
    
    [options.packages.find]
    exclude =
        tests
        tests.*
  • nano setup.py
    from setuptools import setup
    
    setup()
  1. Creating distribution archives
  • python3 -m pip install --upgrade build
  • python3 -m build
  1. Upload to Test.PyPI:
  • python3 -m pip install --user --upgrade twine
  • python3 -m twine upload --repository testpypi dist/*
  • username: token, password: your test PyPI token
  • curl https://test.pypi.org/project/vipps/0.1/
  1. Installing package:
  • python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps vipps
  • python3
  • import vipps
  1. Upload to the PyPI:
  • python3 -m twine upload dist/*
  • username: token, password: your PyPI token