Skip to content

Commit

Permalink
Instalation SDK OpenPay.
Browse files Browse the repository at this point in the history
  • Loading branch information
ErickZH committed Jan 31, 2019
1 parent c82267f commit 25b5db0
Show file tree
Hide file tree
Showing 4 changed files with 174 additions and 3 deletions.
118 changes: 118 additions & 0 deletions app/Http/Controllers/OpenPayController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Openpay;
use Exception;
use OpenpayApiError;
use OpenpayApiAuthError;
use OpenpayApiRequestError;
use OpenpayApiConnectionError;
use OpenpayApiTransactionError;
use Illuminate\Http\JsonResponse;

require_once '../vendor/autoload.php';

class OpenPayController extends Controller
{
/**
* Create charge in OpenPay
* https://www.openpay.mx/docs/api/?php#con-id-de-tarjeta-o-token
*
*/
public function store(Request $request)
{
try {
// create instance OpenPay
$openpay = Openpay::getInstance(env('OPENPAY_ID'), env('OPENPAY_SK'));

Openpay::setProductionMode(env('OPENPAY_PRODUCTION_MODE'));

// create object customer
$customer = array(
'name' => $request->name,
'last_name' => $request->last_name,
'phone_number' => $request->phone_number,
'email' => $request->email
);

// create object charge
$chargeRequest = array(
'method' => 'card',
'source_id' => $request->token,
'amount' => env('OPENPAY_CHARGE'),
'currency' => 'MXN',
'description' => 'Cargo de ejemplo Programación JJE',
'device_session_id' => $request->deviceSessionId,
'customer' => $customer
);

$charge = $openpay->charges->create($chargeRequest);

return new JsonResponse($charge);

} catch (OpenpayApiTransactionError $e) {
return response()->json([
'error' => [
'category' => $e->getCategory(),
'error_code' => $e->getErrorCode(),
'description' => $e->getMessage(),
'http_code' => $e->getHttpCode(),
'request_id' => $e->getRequestId()
]
]);
} catch (OpenpayApiRequestError $e) {
return response()->json([
'error' => [
'category' => $e->getCategory(),
'error_code' => $e->getErrorCode(),
'description' => $e->getMessage(),
'http_code' => $e->getHttpCode(),
'request_id' => $e->getRequestId()
]
]);
} catch (OpenpayApiConnectionError $e) {
return response()->json([
'error' => [
'category' => $e->getCategory(),
'error_code' => $e->getErrorCode(),
'description' => $e->getMessage(),
'http_code' => $e->getHttpCode(),
'request_id' => $e->getRequestId()
]
]);
} catch (OpenpayApiAuthError $e) {
return response()->json([
'error' => [
'category' => $e->getCategory(),
'error_code' => $e->getErrorCode(),
'description' => $e->getMessage(),
'http_code' => $e->getHttpCode(),
'request_id' => $e->getRequestId()
]
]);
} catch (OpenpayApiError $e) {
return response()->json([
'error' => [
'category' => $e->getCategory(),
'error_code' => $e->getErrorCode(),
'description' => $e->getMessage(),
'http_code' => $e->getHttpCode(),
'request_id' => $e->getRequestId()
]
]);
} catch (Exception $e) {
return response()->json([
'error' => [
'category' => $e->getCategory(),
'error_code' => $e->getErrorCode(),
'description' => $e->getMessage(),
'http_code' => $e->getHttpCode(),
'request_id' => $e->getRequestId()
]
]);
}
}
}
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"php": "^7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.7.*",
"laravel/tinker": "^1.0"
"laravel/tinker": "^1.0",
"openpay/sdk": "dev-master"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
Expand Down
53 changes: 51 additions & 2 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions routes/api.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});

/** OpenPay */
Route::post('/charge', 'OpenPayController@store');

0 comments on commit 25b5db0

Please sign in to comment.