承接 camoo/enkap-oauth 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2021-09-13