Omnipay: Braintree
Braintree driver for the Omnipay PHP payment processing library, (*1)
, (*2)
Omnipay is a framework agnostic, multi-gateway payment
processing library for PHP 7.2+. This package implements Braintree support for Omnipay., (*3)
Installation
Omnipay is installed via Composer. To install, simply add it
to your composer.json file:, (*4)
composer require omnipay/braintree:"~4.0@dev"
Basic Usage
The following gateways are provided by this package:, (*5)
You need to set your merchantId, publicKey and privateKey. Setting testMode to true will use the sandbox environment., (*6)
This gateway supports purchase through a token (payment nonce) only. You can generate a clientToken for Javascript:, (*7)
$clientToken = $gateway->clientToken()->send()->getToken();
The generated token will come in handy when using the Javascript SDK to display the Drop-in Payment UI or hosted fields used to collect payment method information., (*8)
On successful submission of the payment form, a one-time-use token that references a payment method provided by your customer, such as a credit card or PayPal account is dynamically added to the form as the value of a hidden payment_method_nonce input field., (*9)
Use the payment_method_nonce to process your customer order like so:, (*10)
$response = $gateway->purchase([
            'amount' => '10.00',
            'token' => $_POST['payment_method_nonce']
        ])->send();
For general usage instructions, please see the main Omnipay
repository., (*11)
Driver specific usage
Create customer
$customer = $gateway->createCustomer([
    'customerData' => [
        'id' => 1,
        'firstName' => 'John',
        'lastName' => 'Doe'
    ]
])->send();
You can find full list of options here., (*12)
Find customer (By ID)
$customer = $gateway->findCustomer(1)->send();
You can find full list of options here, (*13)
Create payment method
$method = $gateway->createPaymentMethod([
    'customerId' => $user->getId(),
    'paymentMethodNonce' => 'paymentnonce',
    'options' => [
        'verifyCard' => true
    ]
]);
You can find full list of options here., (*14)
Update payment method
$method = $gateway->updatePaymentMethod([
    'paymentMethodToken' => 'token123',
    'options' => [
        'paymentMethodNonce' => 'paymentnonce'
    ]
]);
You can find full list of options here., (*15)
Create subscription
$subscription = $gateway->createSubscription([
    'subscriptionData' => [
        'paymentMethodToken' => 'payment_method_token',
        'planId' => 'weekly',
        'price' => '30.00'
    ]
])->send();
You can find full list of options here, (*16)
Cancel subscription
$subscription = $gateway->cancelSubscription('id')->send();
You can find full list of options here, (*17)
Parse webhook notification
$notification = $gateway->parseNotification([
    'bt_signature' => 'signature',
    'bt_payload' => 'payload'
])->send();
You can find full list of options here, (*18)
Support
If you are having general issues with Omnipay, we suggest posting on
Stack Overflow. Be sure to add the
omnipay tag so it can be easily found., (*19)
If you want to keep up to date with release anouncements, discuss ideas for the project,
or ask more detailed questions, there is also a mailing list which
you can subscribe to., (*20)
If you believe you have found a bug, please report it using the GitHub issue tracker,
or better yet, fork the library and submit a pull request., (*21)