Setup payment method and checkout later
This solution makes sense if you require your customers to provide a payment method upfront (to be charged later). This solution also makes sense if you are just looking to collect updated payment information for an existing active customer.
Install and import our clientCopied!
For this recipe, we will use the Python SDK, which you can install using pip install getopenpay or poetry add getopenpay
from getopenpay.client import ApiKeys, OpenPayClient
OP_PUBLISHABLE_TOKEN = 'TODO_YOUR_PUBLISHABLE_TOKEN'
OP_SECRET_TOKEN = 'TODO_YOUR_SECRET_TOKEN'
api_keys = ApiKeys(publishable_key=OP_PUBLISHABLE_TOKEN, secret_key=OP_SECRET_TOKEN)
# sandbox/staging environment
sandbox_host = 'https://connto.openpaystaging.com'
# production environment
production_host = 'https://connto.getopenpay.com'
client = OpenPayClient(api_keys=api_keys, host=sandbox_host)
Create customerCopied!
create_customer_request = CreateCustomerRequest(
email='test_customer+1@getopenpay.com',
first_name='John',
last_name='Smith',
line1='123 Main St',
city='San Francisco',
state='CA',
country='US',
zip_code='94105'
)
customer_external = op_client.customers.create_customer(
create_customer_request=create_customer_request.to_dict()
)
Create a checkout sessionCopied!
Create a CheckoutSession withSETUP
mode
checkout = op_client.checkout.create_checkout_session(
CreateCheckoutSessionRequest(
customer_id=customer_id, # <- pass in cutomser_id
mode=CheckoutMode.SETUP,
success_url='https://youapp.com/success-callback',
)
)
Reroute to our hosted pageCopied!
print(f'Reroute customer to this page for payment: {checkout_session.url})
Handle success callbackCopied!
Verify customer and payment method
# handle success callback
@router.get('/success-callback')
def success_callback(request: Request):
query_params = request.query_params
secure_token = query_params.get('secure_token')
payment_method_id = query_params.get('payment_method_id')
checkout_session = op_client.checkout.verify_checkout_session_payment_method(
checkout_secure_token=secure_token,
payment_method_id=payment_method_id,
)
if checkout_session:
# (Optional) continue for authorization/charging
Set up payment method and create subscriptionsCopied!
OpenPay .js
Setup payment method and create subscriptionsA step-by-step guide for setting up payment methods and creating subscriptions using the OpenPay SDK and OpenPay.js
OpenPay React
Setup payment method and create subscriptionsA step-by-step guide for setting up payment methods and creating subscriptions using the OpenPay SDK and OpenPay.js