Make payments using weaccept.co API and Python.
from weacceptpayments.weaccept import WeAcceptAuth, WeAcceptOrder, WeAcceptPayment
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
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 aWeAcceptAuth
object) is an alternative way of specifyingauth_token
andmerchant_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, Andorder.id
is not in the.response
so you need to specify it manually.
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 aWeAcceptAuth
object) is an alternative way of specifyingauth_token
, Don't specify both at the same time. - Specifying
order
(takes in aWeAcceptOrder
object) is an alternative way of specifyingorder_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.
Verification ofDONEmerchant_order_id
which is an alpha-numeric value.- Verification of
shipping data
ifdelivery_needed
is specified as True.
Feel free to explore.