定制 camoo/enkap-oauth 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

camoo/enkap-oauth

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
  //...
}

统计信息

  • 总下载量: 185
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固