alexcode / sumup-php
SumUp PHP Library
Installs: 1 413
Dependents: 1
Suggesters: 0
Security: 0
Stars: 11
Watchers: 5
Forks: 6
Open Issues: 1
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ~6.0
- satooshi/php-coveralls: ^2.0
- squizlabs/php_codesniffer: ^3.2
This package is not auto-updated.
Last update: 2021-10-02 13:31:07 UTC
README
This repo is archived, please use the official Sumup PHP SDK.
Requirements
PHP 5.6 and later.
Composer
You can install the bindings via Composer. Run the following command:
composer require alexcode/sumup-php
Basic Usage
Setup your credentials
Sumup\Sumup::setClientSecret('MY_CLIENT_SECRET'); Sumup\Sumup::setClientId('MY_CLIENT_ID'); Sumup\Sumup::setRedirectUri('MY_OAUTH_REDIRECT');
OAuth
As a merchant, you will need to Authorize your app to make requests on your behalf with OAuth
Authorization Code Grant
Get the authorize Url to redirect your merchant to.
SumUp doc Authorization Code Grant
Sumup\OAuth::authorizeUrl(['scope' => 'payments']); // https://api.sumup.com/authorize?scope=payments&client_id=MY_CLIENT_ID&redirect_uri=MY_OAUTH_REDIRECT&response_type=code
Upon accepting the dialog, the merchant browser will hit your redirect URI with the code in the GET parameter (ex: https://MY_OAUTH_REDIRECT/?code=246d97b0b730c61f5929drfb3a444948fd54c058d0416019)
Therefore, you can create an Access Token to act on behalf of your Merchant.
Get Access Token
$access_token = Sumup\OAuth::getToken([ 'grant_type' => 'authorization_code', 'code' => '246d97b0b730c61f5929drfb3a444948fd54c058d0416019' ]);
Refresh Access Token
SumUp doc Refresh Tokens
$refreshed = Sumup\OAuth::refreshToken($access_token);
Checkout
Create the checkout server-side
SumUp doc Create checkout API
$checkout = Sumup\Checkout::create([ 'amount' => 20, 'currency' => 'EUR', 'checkout_reference' => 'MY_REF', 'pay_to_email' => 'MY_CUSTOMER_EMAIL', ]); echo $checkout->getCompleteUrl(); // https://api.sumup.com/v0.1/checkouts/123456
Complete the checkout client-side
Use the URL to complete the payment in the client browser. Therefore, no PCI data is ever hitting your server.
SumUp doc Complete checkout API
PUT https://api.sumup.com/v0.1/checkouts/123456 body: { "payment_type": "card", "card": { "name": "...", "number": "...", "expiry_year": "...", "expiry_month": "...", "cvv": "..." } }
Note that a checkout can be completed in a browser only from a domain that is present in your OAuth setup as an authorized javascript origin(s).
List of currently implemented SumUp API
Checkouts API
- Create checkout
- Complete checkout
- Create customer
- Get payment instruments
- Create payment instrument
- Disable payment instrument
Transactions API
- Transaction history
- Transaction details
- Refund transaction
- Receipt data
Accounts API
- Get account
- Get personal profile
- Create personal profile
- Get merchant profile
- Create merchant profile
- Get DBA
- Edit DBA
- Get Bank Accounts
- Create Bank Accounts
- Payouts Get settings
- Payouts Edit settings
Accounts API Employee
- Create Employee
- Get Employees
- Change employee credentials
Accounts API Shelf
- Get shelves
- Create shelf
- Create shelf
- Edit shelf
- Delete shelf
Accounts API Product
- Get products
- Create product
- Get product
- Edit product
- Delete product
- Get product prices
- Create product price
- Get product price
- Edit product price
- Delete product price
Accounts API Application Settings
- Application Get settings
- Application Edit settings
Credits
This Library is loosely inspired from Stripe PHP