A suite of APIs that powers commerce for businesses of all sizes.
Stripe makes it easy to start accepting credit cards on the web today. The integration method uses our built in plugin for notification handling.
The integration handles orders, recurring orders and refunds as well. It also supports lifetime commissions and coupon handling.
Cookie data – order form
Each customer account in stripe has an extra field called ‘description‘. In this integration method, we are using it. The task is to add the (tracking) cookie value into the description field found in your order form. The easiest way is to add this code to your payment form:
<input type="hidden" name="pap_custom" value="" id="pap_tdx8v2s5a" />
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
PostAffTracker.writeCookieToCustomField('pap_tdx8v2s5a');
</script>
When the form is submitted (customer is ordering), you can process the form data the standard way and before creating a charge and a customer account (with Stripe_Customer::create), you have to use the pap_custom data from the submitted form and set the value as a customer description – “description” => $_POST[‘pap_custom’].
Cookie data – Stripe Checkout
If you are using the Stripe Checkout then instead of the step above you need to do this one. Essentially what needs to be done is to insert into the clientReferenceId option of the stripe.redirectToCheckout function the tracking ID which can be obtained as explained this.
Here is an example of an integrated Stripe Checkout button:
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
var papCookie = '';
PostAffTracker.setAccountId('Account_ID');
try {
PostAffTracker.track();
} catch (err) { }
PostAffTracker.executeOnResponceFinished.push(function() {
papCookie = PostAffTracker._getAccountId() + PostAffTracker._cmanager.getVisitorIdOrSaleCookieValue();
});
</script>
<script src="https://js.stripe.com/v3"></script>
<button id="checkout-button-price_1HHyerAqrxE6mVvaZyp4HYuI" role="link" type="button">Purchase</button>
<div id="error-message"></div>
<script>
(function() {
var stripe = Stripe('pk_live_key');
var checkoutButton = document.getElementById('checkout-button-price_1HHyerAqrxE6mVvaZyp4HYuI');
checkoutButton.addEventListener('click', function () {
stripe.redirectToCheckout({
lineItems: [
{price: 'price_123', quantity: 1},
],
mode: 'payment',
successUrl: 'https://your-website.com/success',
cancelUrl: 'https://your-website.com/canceled',
clientReferenceId: papCookie
})
.then(function(result) {
.....
});
});
})();
</script>
Sale tracking
The sale tracking will happen automatically, both for standard and for recurring charges. The last step is to set your Stripe to inform your Post Affiliate Pro about each charge. This is done by Stripe webhooks.
To set a webhook navigate to Developers menu section (top right) and then navigate to Webhooks. Clicking Add endpoint reveals a form to add a new URL for receiving webhooks. Enter this URL there for live notifications:
https://URL_TO_PostAffiliatePro/plugins/Stripe/stripe.php?AccountId=Account_ID
In case of events to listen to you can add invoice.payment_succeeded, charge.succeeded and charge.refunded. If you are using Stripe Checkout then you will also need checkout.session.completed event.
If you wish to track test payments as well set up the same webhook in the test mode too.
Plugin activation
The last step is to activate the built-in plugin in your Post Affiliate Pro. Do not forget to configure it after activation by adding the Secret API key or a Restricted API key. In case you’d like to use a Restricted API key you need to allow read access for these resources: Charges, Subscriptions, Checkout Sessions, Customers and Invoices.
That’s it, you are done. All the transactions will now be tracked.
Do not forget to integrate your site with the click tracking code to make it all working.