承接 geniv/nette-comgate 相关项目开发

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

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

geniv/nette-comgate

Composer 安装命令:

composer require geniv/nette-comgate

包简介

Comgate wrapper extension for Nette Framework

README 文档

README

Comgate payment gateway

inspired: https://github.com/renat-magadiev/comgate-client , https://github.com/LZaplata/Comgate

comgate info pdf: https://www.comgate.cz/files/informacni-brozura-comgate-payments.pdf

list test payment: https://portal.comgate.cz/cs/testovaci-platby

api: https://platebnibrana.comgate.cz/cz/protokol-api

need set in:

https://portal.comgate.cz/cs/propojeni-obchodu-detail/id/**XXmerchantIdXX**

  • Url zaplacený
  • Url zrušený
  • Url nevyřízený
  • Url pro předání výsledku platby
  • Povolené IP adresy

thanks for code review: @AdamSmid

example url for production:

redirect url (GET redirect from Comgate): https://example.cz/summary/result/${id}?refId=${refId}

status url (POST check from Comgate): https://example.cz/summary/status

Installation

$ composer require geniv/nette-comgate

or

"geniv/nette-comgate": ">=1.0.0"

require:

"php": ">=7.0.0",
"nette/nette": ">=2.4.0",
"renat-magadiev/comgate-client": "^1.0"

Include in application

neon configure:

# comgate
comgate:
    merchantId: "xxxyyy"
    secret: "******"
    sandbox: true

neon configure extension:

extensions:
    comgate: Comgate\Bridges\Nette\Extension

presenter create payment:

/** @var Comgate @inject */
public $comgate;

create payment:

try {
    // process Comgate
    $payment = $this->comgate->createPayment($values['order_price'] * 100, $values['order_id'], $values['email'], $game['name']);
    $payment->setPrepareOnly(true);

    $response = $this->comgate->sendResponse($payment);
    if ($response->isOk()) {
        // edit checkout_id
        $this->model->editItem($id, ['checkout_id' => $response->getTransId()]);
        $this->redirectUrl($response->getRedirectUrl());
    }
} catch (\Comgate\Exception\InvalidArgumentException $e) {
    Debugger::log($e);
    $this->redirect('error');
} catch (\Comgate\Exception\LabelTooLongException $e) {
    Debugger::log($e);
    $this->redirect('error');
}

status payment:

public function actionStatus()
{
    $this->getHttpResponse()->setContentType('application/javascript');
    $request = $this->getHttpRequest();
    if ($request->isMethod('POST')) {
        $transId = $request->getPost('transId');
        $status = $request->getPost('status');
        if ($transId && $status) {
            $item = $this->model->getByCheckoutId($transId);
            if ($item) {
                if ($this->model->editItem((int) $item['id'], ['status' => $status, 'checkout_date%sql' => 'NOW()', 'active' => ($status == PaymentStatus::PAID)])) {
                    $this->sendResponse(new ComgateResponse('code=0&message=OK'));
                }
                $this->sendResponse(new ComgateResponse('code=1&message=SAVE_ERROR'));
            }
            $this->sendResponse(new ComgateResponse('code=1&message=TRANS_ID_NOT_FOUND'));
        }
        $this->sendResponse(new ComgateResponse('code=1&message=MISSING_PARAMETERS'));
    }
    $this->sendResponse(new ComgateResponse('code=1&message=FAIL'));
}

result payment:

public function actionResult(string $id, string $refId)
{
    $item = $this->model->getByCheckoutId($id);
    if ($item) {
        if ($item['status'] == PaymentStatus::PAID) {
            //success
        } else {
            //danger
        }
    }
    $this->redirect('Homepage:');
}

geniv/nette-comgate 适用场景与选型建议

geniv/nette-comgate 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 332 次下载、GitHub Stars 达 1, 最近一次更新时间为 2018 年 08 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「nette」 「comgate」 「geniv」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 geniv/nette-comgate 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 geniv/nette-comgate 我们能提供哪些服务?
定制开发 / 二次开发

基于 geniv/nette-comgate 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-08-28