Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

Make payments using weaccept.co API and Python.

Project description

WeAcceptPayments

Make payments using weaccept.co API and Python.

import

from weacceptpayments.weaccept import WeAcceptAuth, WeAcceptOrder, WeAcceptPayment

- specify auth data

auth = WeAcceptAuth.as_instance(api_key='YOUR_API_KEY')

PLEASE NOTE:

  • NEVER STORE YOUR API_KEY IN YOUR .py FILES, STORE IT IN AN ENVIRONMENT VARIABLE OR .env FILE AND USE python-dotenv

- create your order

order = WeAcceptOrder.as_instance(auth=auth,
                                  merchant_id=auth.merchant_id,
                                  amount_cents=20000,
                                  merchant_order_id='gv12c4ttr',
                                   items=[  
                                           {  
                                             'name': 'taz1',  
                                             'amount_cents': 20000  
                                           }])

What kwargs are allowed? ``

_allowed_kwargs = [  
    'delivery_needed', 'merchant_id', 'amount_cents', 'currency', 'merchant_order_id',  
    'items', 'shipping_data', 'auth', 'auth_token', 'merchant_id'  
]

PLEASE NOTE:

  • Specifying auth (takes in a WeAcceptAuth object) is an alternative way of specifying auth_token and merchant_id, Don't specify both at the same time.

Now you've access to order.order_id

  • DONT TRY TO CREATE THE SAME ORDER TWICE.
    -- In case you did, order.id won't be created and you have to specify it manually. This is not a bug, When you create the order twice, The server returns 'duplicate' in the second time, And order.id is not in the .response so you need to specify it manually.

specify payment data

payment = WeAcceptPayment.as_instance(auth_token=auth.auth_token,
                                                 order_id=order.order_id,
                                                 amount_cents=200,
                                                 integration_id=16639,
                                                 billing_data={  
                                                               "apartment": "803",  
                                                               "email": "test@example.com",  
                                                               "floor": "42",  
                                                               "first_name": "LeOndaz",  
                                                               "street": "Python community",  
                                                               "building": "8028",  
                                                               "phone_number": "+0123456789",  
                                                               "shipping_method": "PKG",  
                                                               "postal_code": "01898",  
                                                               "city": "Jaskolskiburgh",  
                                                               "country": "CR",  
                                                               "last_name": "whatever",  
                                                               "state": "RANDOM"  
                                                               ))

Now we have access to .token Again, What kwargs are allowed?

_allowed_kwargs = [  
    'amount_cents', 'expiration', 'billing_data', 'currency', 'integration_id',  
    'lock_order_when_paid', 'auth', 'auth_token', 'order', 'order_id'  
]
  • What kwargs are a mandatory?
_MANDATORY_KWARGS = [  
    # amount cents must be specified and the server says duplicate order if it's not.  
    'merchant_order_id', 'merchant_id', 'amount_cents'  
]

PLEASE NOTE:

  • Specifying auth (takes in a WeAcceptAuth object) is an alternative way of specifying auth_token, Don't specify both at the same time.
  • Specifying order (takes in a WeAcceptOrder object) is an alternative way of specifying order_id. Don't specify both at the same time.

Now, add an iFrame with the integration_id of the card in your payment integrations section and the payment_token you got from here.

Tada! This is magic btw.

  • In each of those objects, You have access to .request, .response, .headers, other things too (Explore or use IntelliCode)

  • In each of those objects, You can access the response as obj[key] BUT after you call .start() otherwise, Exceptions are raised.

@TODO

  • Verification of merchant_order_id which is an alpha-numeric value.
  • Verification of shipping data if delivery_needed is specified as True.

Feel free to explore.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for weacceptpayments, version 2.4
Filename, size File type Python version Upload date Hashes
Filename, size weacceptpayments-2.4-py3-none-any.whl (20.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size weacceptpayments-2.4.tar.gz (7.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page