SpankPay
master
master
  • Welcome to the SpankPay SDK!
  • SpankPay APIs
Powered by GitBook
On this page
  • Overview
  • Integrating SpankPay
  • 1. Include the SpankPay JavaScript
  • 2. Create a Purchase
  • 3. Implement a Webhook Callback URL
  • 4. Testing Your Integration

Was this helpful?

Welcome to the SpankPay SDK!

Get paid with crypto!

Overview

The SpankPay Merchant SDK makes it easy to get paid with cryptocurrency: easy for your users, and easy for you (the developer).

Getting started with SpankPay is a simple three-step process:

1. Include the SpankPay JavaScript

Add the following line to the bottom of the page on which you will be accepting payments:

<script src="https://pay.spankchain.com/spankpay.js"></script>

2. Add a Pay with SpankPay button

Add the following code to create a button which will start a SpankPay payment. Alternatively, you can call the JavaScript API directly.

<button
    data-spankpay-key="test_quickstart_key"
    data-amount="69.69"
    data-currency="USD"
    data-accept-currencies="BOOTY,ETH,BTC,DOGE"
    data-callback="https://pay.spankchain.com/api/quickstart/callback"
    data-on-payment="onSpankPayPayment">
  Pay with SpankPay!
</button>

<script>
function onSpankPayPayment(payment) {
    console.log(`Payment ${payment.status}:`, payment)
}
</script>
const { SpankPay } = require('spankpay')

SpankPay.showPurchase({
    key: 'test_quickstart_key',
    amount: '69.69',
    currency: 'USD',
    acceptCurrencies: ['BOOTY', 'ETH', 'BTC', 'DOGE'],
    callback: 'https://pay.spankchain.com/api/quickstart/callback',
    onPayment: function(payment) {
        console.log(`Payment ${payment.status}`, payment)
    },
})

3. Generate an API key and write a Webhook endpoint

Integrating SpankPay

1. Include the SpankPay JavaScript

The first step in integrating SpankPay into your website is including the SpankPay JavaScript. This can be done directly with a <script> tag:

<script src="https://pay.spankchain.com/spankpay.js"></script>

Or via npm:

$ npm install --save spankpay

2. Create a Purchase

<button
    data-spankpay-key="test_quickstart_key"
    data-amount="69.69"
    data-currency="USD"
    data-accept-currencies="BOOTY,ETH,BTC,DOGE"
    data-callback="https://pay.spankchain.com/api/quickstart/callback"
    data-on-payment="onSpankPayPayment">
  Pay with SpankPay!
</button>

Which will show the SpankPay payment page when the Pay with SpankPay! button is clicked, and call the onSpankPayPayment callback once the payment has been completed and the webhook callback has been called.

const { SpankPay } = require('spankpay')

SpankPay.showPurchase({
    key: 'test_quickstart_key',
    amount: '69.69',
    currency: 'USD',
    acceptCurrencies: ['BOOTY', 'ETH', 'BTC', 'DOGE'],
    callback: 'https://pay.spankchain.com/api/quickstart/callback',
    onPayment: function(payment) {
        console.log(`Payment ${payment.status}`, payment)
    },
})

3. Implement a Webhook Callback URL

POST /api/quickstart/callback
Content-Type: text/plain
X-SpankPay-Key: test_quickstart_key
X-SpankPay-Signature: t=1551389518&s=b613679a0814d9ec…

{
    "type": "payment",
    "paymentId": "pay_c493715653c",
    "timestamp": "1969-06-09T06:09:06.969Z",
    "purchaseId": "pur_f95d778c35f",
    "purchase": { ... },
    "amount": "69.69",
    "amountCurrency": "USD",
    "inputAmount": "0.6969",
    "inputCurrency": "ETH",
    "inputTx": "0x2144292c5ad…",
    "receipt": {
        "type": "webhook",
        "url": "https://yoursite.com/yourserver/callback",
        "status": "called",
        "calledOn": "1969-06-09T06:09:06.969Z",
        "responseStatusCode": 200,
        "response": ...,
        ...
    }
    ...
}

For more, see:

4. Testing Your Integration

Testing API Keys

Every API key has a corresponding "testing" key. This testing key shares common settings (such as accepted coins) with the main key, but the currency list in the Purchase iframe will also include the option to pay with "test" versions of each coin.

When a test coin is selected, the user will be presented with a "send fake payment" button, which will immediately simulate a payment with that coin.

Test payments are identical to real payments, except the currencies will be prefixed with "TEST":

{
    "amount": "69.69",
    "amountCurrency": "TEST-USD",
    "inputAmount": "0.6969",
    "inputCurrency": "TEST-ETH",
    ...
}

Note that the testing API key also uses a different secret key.

We recommend using the testing key in your development and staging environments.

Testing Webhooks

NextSpankPay APIs

Last updated 6 years ago

Was this helpful?

Want more control? SpankPay comes with a to give you full control of the payment process.

After you've evaluated SpankPay and would like to fully integrate it with your site, you will need to sign up for an account, create testing + production API keys, and implement a webhook endpoint which SpankPay will use to notify your application on a successful payment. This is covered in detail in .

See for complete API documentation for the spankpay.js library.

In SpankPay, a Purchase is used to request payment from a user. Purchases can be created through either a .

Or via the :

And For a complete description of each of these methods, including their different options, see the .

When SpankPay receives confirmation of a user's payment, it will call the URL with a Payment to notify your application that the payment was completed successfully.

For more details on effectively testing webhooks during development, see: .

SpankPay APIs
complete JavaScript API
Webhook Callbacks
SpankPay Button
SpankPay.showPurchase(...) method
Purchase API
callback webhook
Implementing Webhooks
The Payment object
Testing Webhooks