camoo/enkap-oauth
最新稳定版本:2.1.0
Composer 安装命令:
composer require camoo/enkap-oauth
包简介
E-commerce Plugins for SmobilPay. OAuth Library
关键字:
README 文档
README
SDK for e-nkap. SmobilPay e-commerce
Note Only use this branch with PHP 8.2 and above
Note Compatibility with PHP releases < 8.2 are being maintained in the v1.0 branch
Installation
composer require camoo/enkap-oauth
Usage
use Enkap\OAuth\Services\OAuthService; $consumerKey = 'hqBvUfOjdLoP04763L_LDO'; $consumerSecret = 'FwxKTJzN4jE8IYdeCM83'; $service = new OAuthService($key, $secret); var_dump($service->getAccessToken());
Initiate payment
use Enkap\OAuth\Services\OAuthService; use Enkap\OAuth\Model\Order; use Enkap\OAuth\Services\OrderService; use Enkap\OAuth\Lib\Helper; $consumerKey = 'hqBvUfOjdLoP04763L_LDO'; $consumerSecret = 'FwxKTJzN4jE8IYdeCM83'; $orderService = new OrderService($key, $secret); $order = $orderService->loadModel(Order::class); $dataData = [ 'merchantReference' => uniqid('', true), 'email' => 'enkap@mail.tld', 'customerName' => 'My customer', 'totalAmount' => 6400, 'description' => 'Camoo Test Payment', 'currency' => 'XAF', 'items' => [ [ 'itemId' => '1', 'particulars' => 'soya bien pimenté', 'unitCost' => 100, 'quantity' => 50, 'subTotal' => 5000 ], [ 'itemId' => 2, 'unitCost' => 700, 'quantity' => 2, 'particulars' => 'Bière 33 Export', 'subTotal' => 1400, ] ] ]; try { $order->fromStringArray($dataData); $response = $orderService->place($order); // Save references into your Database $entity = $this->Payments->newEntity($dataData); $entity->set('oder_transaction_id', $response->getOrderTransactionId()); $this->Payments->save($entity); // redirect User to Enkap System Helper::redirect($response->getRedirectUrl()); } catch (\Throwable $e) { var_dump($e->getMessage()); }
Get Payment Details
use Enkap\OAuth\Services\PaymentService; use Enkap\OAuth\Model\Payment; $consumerKey = 'hqBvUfOjdLoP04763L_LDO'; $consumerSecret = 'FwxKTJzN4jE8IYdeCM83'; $trxId = 'e07355446e0140ea9876a6ba38b155f3'; $paymentService = new PaymentService($key, $secret); $payment = $paymentService->getByTransactionId($trxId); // status var_dump($payment->getPaymentStatus()); // order var_dump($payment->getOrder()); # OR $internalTrxId = '61405dc1a38878.58742206'; $paymentService = new PaymentService($key, $secret); $payment = $paymentService->getByOrderMerchantId($internalTrxId); // status var_dump($payment->getPaymentStatus()); // order var_dump($payment->getOrder());
Check Payment Status
use Enkap\OAuth\Services\StatusService; use Enkap\OAuth\Lib\Helper; use Enkap\OAuth\Model\Status; $consumerKey = 'hqBvUfOjdLoP04763L_LDO'; $consumerSecret = 'FwxKTJzN4jE8IYdeCM83'; $trxId = 'e07355446e0140ea9876a6ba38b155f3'; $statusService = new StatusService($key, $secret); $status = $statusService->getByTransactionId($trxId); // Update your database $query = $this->Payments->query()->set(['status' => $status->getCurrent()])->where(['oder_transaction_id' => $trxId]); if ($status->confirmed()){ // Payment successfully completed // send Item to user/customer return; } if ($status->failed() || $status->canceled()) { // delete that reference from your Database }
Set Callback Urls to receive Payment status automatically
use Enkap\OAuth\Services\CallbackUrlService; use Enkap\OAuth\Model\CallbackUrl; $setup = new CallbackUrlService($key, $secret); $callBack = $setup->loadModel(CallbackUrl::class); # The URL where to redirect the user after the payment is completed. It will contain the reference id generated by your system which was provided in the initial order placement request. E-nkap will append your reference id in the path of the URL with the form: http://localhost/action/return/{yourReferenceId} $callBack->return_url = 'http://localhost/action/return'; # The URL used by E-nkap to instantly notify you about the status of the payment. E-nkap would append your reference Id (generated by your system and provided in the initial order placement request) as path variable and send a PUT with the status of the payment in the body as {"status":"[txStatus]"}, where [txStatus] the payment status. $callBack->notification_url = 'http://localhost/action/notify'; // this action should accept PUT Request $result = $setup->set($callBack); if ($result === true) { // Callback URLs have been set //... } else { // Failed to set Callback URLs //... }
Delete Order
use Enkap\OAuth\Services\OrderService; use Enkap\OAuth\Model\Order; $consumerKey = 'hqBvUfOjdLoP04763L_LDO'; $consumerSecret = 'FwxKTJzN4jE8IYdeCM83'; $trxId = 'e07355446e0140ea9876a6ba38b155f3'; $orderService = new OrderService($key, $secret); $orderModel = $orderService->loadModel(Order::class); $orderModel->order_transaction_id = $trxId; $result = $orderService->delete($orderModel); if ($result === true) { // order has been deleted //... }
统计信息
- 总下载量: 88
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2021-09-13