Skip to content

LeOndaz/WeAcceptPayments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. DONE
  • Verification of shipping data if delivery_needed is specified as True.

Feel free to explore.

About

Make payments using weaccept.co API and Python.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages