2017 © Pedro Peláez
 

library openpayu

OpenPayU PHP Library

image

openpayu/openpayu

OpenPayU PHP Library

  • Monday, April 16, 2018
  • by mkurzeja
  • Repository
  • 42 Watchers
  • 114 Stars
  • 139,905 Installations
  • PHP
  • 9 Dependents
  • 0 Suggesters
  • 70 Forks
  • 10 Open issues
  • 27 Versions
  • 16 % Grown

The README.md

Official OpenPayU PHP Library

The OpenPayU PHP library provides integration access to the REST API 2.1, (*1)

Dependencies

PHP >= 5.3 with extensions cURL and hash, (*2)

Documentation

Full implementation guide: English, Polish., (*3)

To process operations such as: - order status update - order retrieve - order cancel, (*4)

You will need to provide a parameter called orderId. The value of orderId is your order identifier that is set by PayU Payment system, and it's used to invoke remote methods., (*5)

There are two ways to get orderId:, (*6)

  1. It is present inside the received notification message from PayU Payment System as a result of payment.
  2. In the response from method OpenPayU_Order::create.

In both cases you will find orderId using this statement: $response->getResponse()->orderId., (*7)

Installation

Composer

To install with Composer, simply add the requirement to your composer.json file:, (*8)

{
  "require" : {
    "openpayu/openpayu" : "2.3.*"
  }
}

Then install by running, (*9)

composer.phar install

Manual installation

Obtain the latest version of openpayu_php SDK with:, (*10)

git clone https://github.com/PayU/openpayu_php.git

Getting started

If you are using Composer use autoload functionality:, (*11)

include "vendor/autoload.php";

Or simply add this lines anywhere in your application:, (*12)

    require_once 'lib/openpayu.php';
    require_once realpath(dirname(__FILE__)) . '/../../config.php';

Configure

Important: SDK works only with 'REST API' (Checkout) points of sales (POS). If you do not already have PayU merchant account, please register in Production or [please register in Sandbox][ext6], (*13)

Example "Configuration keys" from Merchant Panel, (*14)

pos_configuration, (*15)

To configure OpenPayU environment you must provide a set of mandatory data in config.php file., (*16)

For production environment:, (*17)

    //set Production Environment
    OpenPayU_Configuration::setEnvironment('secure');

    //set POS ID and Second MD5 Key (from merchant admin panel)
    OpenPayU_Configuration::setMerchantPosId('145227');
    OpenPayU_Configuration::setSignatureKey('13a980d4f851f3d9a1cfc792fb1f5e50');

    //set Oauth Client Id and Oauth Client Secret (from merchant admin panel)
    OpenPayU_Configuration::setOauthClientId('145227');
    OpenPayU_Configuration::setOauthClientSecret('12f071174cb7eb79d4aac5bc2f07563f');    

For sandbox environment:, (*18)

    //set Sandbox Environment
    OpenPayU_Configuration::setEnvironment('sandbox');

    //set POS ID and Second MD5 Key (from merchant admin panel)
    OpenPayU_Configuration::setMerchantPosId('300046');
    OpenPayU_Configuration::setSignatureKey('0c017495773278c50c7b35434017b2ca');

    //set Oauth Client Id and Oauth Client Secret (from merchant admin panel)
    OpenPayU_Configuration::setOauthClientId('300046');
    OpenPayU_Configuration::setOauthClientSecret('c8d4b7ac61758704f38ed5564d8c0ae0');

If you want to use sandbox environment, register at this link https://secure.snd.payu.com/cp/register?lang=en, (*19)

OAuth configuration

SDK supports two PayU OAuth grant types: client_credentials and trusted_merchant. Default is client_credentials., (*20)

If you want to change grant type use:, (*21)

    OpenPayU_Configuration::setOauthGrantType('grant_type');

grant_type can be one of the following OauthGrantType::CLIENT_CREDENTIAL or OauthGrantType::TRUSTED_MERCHANT, (*22)

Parameters needed for client_credentials, (*23)

    //set Oauth Client Id and Oauth Client Secret (from merchant admin panel)
    OpenPayU_Configuration::setOauthClientId('300046');
    OpenPayU_Configuration::setOauthClientSecret('c8d4b7ac61758704f38ed5564d8c0ae0');

Parameters needed for trusted_merchant, (*24)

    //set Oauth Client Id and Oauth Client Secret (from merchant admin panel)
    OpenPayU_Configuration::setOauthClientId('clent_id');
    OpenPayU_Configuration::setOauthClientSecret('clent_secret');

    //set Oauth Email and Oauth Ext Customer Id
    OpenPayU_Configuration::setOauthEmail('email');
    OpenPayU_Configuration::setOauthExtCustomerId('ext_customer_id');

Connection over Proxy

    OpenPayU_Configuration::setProxyHost('address');
    OpenPayU_Configuration::setProxyPort(8080);
    OpenPayU_Configuration::setProxyUser('user');
    OpenPayU_Configuration::setProxyPassword('password');

Cache

OpenPayU library automatically stores OAuth authentication data in the Cache., (*25)

OpenPayU library has two classes implemented to manage the Cache:, (*26)

  • OauthCacheFile - data is stored in the file system. This is a default and automatic Cache method which stores the data in lib/Cache folder. ATTENTION: for security reasons it is recommended to change the Cache folder, so it would not be accessible from the web browser., (*27)

    Configuration:, (*28)

    OpenPayU_Configuration::setOauthTokenCache(new OauthCacheFile($directory));
    

    $directory - absolute path to the data folder; if the parameter is missing, the folder is lib/Cache, (*29)

  • OauthCacheMemcached - data is stored in Memcached This method requires Memcached (https://memcached.org/) to be installed on the server along with Memcached PHP module (http://php.net/manual/en/book.memcached.php), (*30)

    Configuration:, (*31)

    OpenPayU_Configuration::setOauthTokenCache(new OauthCacheMemcached($host, $port, $weight));
    

    $host - Memcached server address - localhost by default $port - Memcached server port - 11211 by default $weight - Memcached server priority - 0 by default, (*32)

It is possible to implement another method to manage cache. In such a case it needs to implement OauthCacheInterface, (*33)

Usage

Remember: All keys in "order array" must be in lowercase., (*34)

Creating order using REST API

File with working example: examples/v2/order/OrderCreate.php, (*35)

To create an order using REST API in back-end you must provide an Array with order data:, (*36)

in your controller, (*37)

    $order['continueUrl'] = 'http://localhost/'; //customer will be redirected to this page after successfull payment
    $order['notifyUrl'] = 'http://localhost/';
    $order['customerIp'] = $_SERVER['REMOTE_ADDR'];
    $order['merchantPosId'] = OpenPayU_Configuration::getMerchantPosId();
    $order['description'] = 'New order';
    $order['currencyCode'] = 'PLN';
    $order['totalAmount'] = 3200;
    $order['extOrderId'] = '1342'; //must be unique!

    $order['products'][0]['name'] = 'Product1';
    $order['products'][0]['unitPrice'] = 1000;
    $order['products'][0]['quantity'] = 1;

    $order['products'][1]['name'] = 'Product2';
    $order['products'][1]['unitPrice'] = 2200;
    $order['products'][1]['quantity'] = 1;

    //optional section buyer
    $order['buyer']['email'] = 'dd@ddd.pl';
    $order['buyer']['phone'] = '123123123';
    $order['buyer']['firstName'] = 'Jan';
    $order['buyer']['lastName'] = 'Kowalski';

    $response = OpenPayU_Order::create($order);

    header('Location:'.$response->getResponse()->redirectUri); //You must redirect your client to PayU payment summary page.

Retrieving order from OpenPayU

File with working example: examples/v2/order/OrderRetrieve.php, (*38)

You can retrieve order by its PayU order_id, (*39)

    $response = OpenPayU_Order::retrieve('Z963D5JQR2230925GUEST000P01'); //as parameter use orderId

Retrieving transactions for order from OpenPayU

File with working example: examples/v2/order/OrderTransactionRetrieve.php, (*40)

You can retrieve transactions for order by its PayU order_id, (*41)

    $response = OpenPayU_Order::retrieveTransaction('Z963D5JQR2230925GUEST000P01'); //as parameter use orderId

Cancelling order

File with working example: examples/v2/order/OrderCancel.php, (*42)

You can cancel order by its PayU order_id, (*43)

    $response = OpenPayU_Order::cancel('Z963D5JQR2230925GUEST000P01'); //as parameter use orderId

Updating order status

File with working example: examples/v2/order/OrderStatusUpdate.php, (*44)

You can update order status to accept order., (*45)

    $status_update = array(
        "orderId" => 'Z963D5JQR2230925GUEST000P01', //as value use ORDER_ID
        "orderStatus" => 'COMPLETED'
    );

    $response = OpenPayU_Order::statusUpdate($status_update);

Handling notifications from PayU

File with working example: examples/v2/order/OrderNotify.php, (*46)

PayU sends requests to your application when order status changes, (*47)

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $body = file_get_contents('php://input');
        $data = trim($body);

        $response = OpenPayU_Order::consumeNotification($data);
        $response->getResponse()->order->status; //NEW PENDING CANCELED REJECTED COMPLETED WAITING_FOR_CONFIRMATION

        header("HTTP/1.1 200 OK");
    }

Refund money

File with working example: examples/v2/refund/RefundCreate.php, (*48)

You can create refund to refund money on buyer account, (*49)

    $refund = OpenPayU_Refund::create(
        'Z963D5JQR2230925GUEST000P01', //as a value use ORDER_ID
        'Money refund', //Description - required
        '100', //Amount - If not provided, returns whole transaction, optional
        'ext-customer-id', // External submerchant ID, required only for marketplace
        'ext-refund-id' // External refund ID, required only for marketplace
    );

Retrieving pay methods from POS

File with working example: examples/v2/retrieve/RetrievePaymethods.php, (*50)

You can retrieve pay methods from POS, (*51)

    $response = OpenPayU_Retrieve::payMethods();

You can add optional parameter lang to payMethods(), (*52)

    $response = OpenPayU_Retrieve::payMethods('en');

Delete card token

File with working example: examples/v2/token/TokenDelete.php, (*53)

You can delete user's card token., (*54)

Token deletion is possible only for trusted_merchant grant type., (*55)

    $refund = OpenPayU_Token::delete(
        'TOKC_EXAMPLE_TOKEN' // as a value use user card token
    );

Get Shop

File with working example: examples/v2/shops/Get.php, (*56)

You can retrieve shop data., (*57)

    $shop = OpenPayU_Shop::get(
        'PUBLIC_SHOP_ID' // Shop ID from Merchant Panel
    );

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

, (*58)

The Versions

16/04 2018

dev-master

9999999-dev

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • ext-curl *
  • ext-hash *
  • php >=5.3.0

 

The Development Requires

19/01 2018

2.2.9

2.2.9.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

05/12 2017

dev-namespaces

dev-namespaces

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

06/11 2017

2.2.8

2.2.8.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

30/10 2017

2.2.7

2.2.7.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

26/10 2017

2.2.6

2.2.6.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

25/10 2017

2.2.5

2.2.5.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

17/05 2017

2.2.4

2.2.4.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

25/08 2016

2.2.3

2.2.3.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

03/06 2016

2.2.2

2.2.2.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

26/05 2016

2.2.1

2.2.1.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

06/05 2016

2.2.0

2.2.0.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.3.0
  • ext-curl *
  • ext-hash *

 

The Development Requires

23/02 2016

2.1.6

2.1.6.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

11/02 2016

2.1.5

2.1.5.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

23/11 2015

2.1.4

2.1.4.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

21/01 2015

v2.1.3

2.1.3.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

15/12 2014

v2.1.2

2.1.2.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

15/09 2014

v2.1.1

2.1.1.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

26/08 2014

v2.1.0

2.1.0.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

23/06 2014

v2.0.8

2.0.8.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

20/06 2014

v2.0.7

2.0.7.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

18/06 2014

v2.0.6

2.0.6.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

16/06 2014

v2.0.5

2.0.5.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

16/06 2014

v2.0.2

2.0.2.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

  • php >=5.2.1
  • ext-curl *
  • ext-hash *

 

The Development Requires

08/05 2014

2.0.4

2.0.4.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

 

15/04 2014

2.0.3

2.0.3.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires

 

02/04 2014

2.0

2.0.0.0

OpenPayU PHP Library

  Sources   Download

LGPL-3.0

The Requires