承接 bsolus/mbway-sdk-php-hipay-comprafacil 相关项目开发

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

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

bsolus/mbway-sdk-php-hipay-comprafacil

Composer 安装命令:

composer require bsolus/mbway-sdk-php-hipay-comprafacil

包简介

HiPay Professional MB WAY SDK PHP

README 文档

README

Create a transaction

use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestTransaction;
use HipayMbway\MbwayRequestTransactionResponse;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management 
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";
$category = 3;

/*
 * Transaction parameters
 */

$notificationUrl = 'http://mynotificationurl.com';
$amount = 12;
$customerPhone = "9xxxxxxxx";
$customerEmail = "xxxxxxx@xxxxx.com";
$merchantId = "xxxxxx";
$orderDescription = "order description";
$customerVATNumber = "000000000";
$customerName = "John Doe";


/*
 * Create a Transaction
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestTransaction = new MbwayRequestTransaction($username, $password, $amount, $customerPhone, $customerEmail, $merchantId, $category, $notificationUrl, $entity);
$mbwayRequestTransaction->set_description($orderDescription);
$mbwayRequestTransaction->set_clientVATNumber($customerVATNumber);
$mbwayRequestTransaction->set_clientName($customerName);
$mbwayRequestTransactionResult = new MbwayRequestTransactionResponse($mbway->createPayment($mbwayRequestTransaction)->CreatePaymentResult);

/*
 * Check Transaction creation result
 */

if ($mbwayRequestTransactionResult->get_Success() && $mbwayRequestTransactionResult->get_ErrorCode() == "0") {
        //vp1
        $transactionId = $mbwayRequestTransactionResult->get_MBWayPaymentOperationResult()->get_OperationId();
        print "SUCCESS - TRANSACTION CREATED WITH ID: $transactionId" . PHP_EOL;
} else {
    print $mbwayRequestTransactionResult->get_MBWayPaymentOperationResult()->get_StatusCode() . PHP_EOL;
    print $mbwayRequestTransactionResult->get_ErrorDescription() . PHP_EOL;
}  

Check transaction status

use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestDetails;
use HipayMbway\MbwayRequestResponse;
use HipayMbway\MbwayRequestDetailsResponse;
use HipayMbway\MbwayRequestTransactionResponse;
use HipayMbway\MbwayPaymentDetailsResult;
   
/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management 
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";

/*
 * Operation parameter
 * $transactionId is the id returned on the transaction creation 
 */

$transactionId = 'XXXXXXXXXXXXXXXXX';

/*
 * Operation  
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestDetails = new MbwayRequestDetails($username, $password, $transactionId, $entity);
$mbwayRequestDetailsResult = new MbwayRequestDetailsResponse($mbway->getPaymentDetails($mbwayRequestDetails)->GetPaymentDetailsResult);

/*
 * Check Operation result  
 */

if ($mbwayRequestDetailsResult->get_ErrorCode() <> 0 || !$mbwayRequestDetailsResult->get_Success()) {
    print "Notification: Unable to confirm payment status. Operation returned: " . $mbwayRequestDetailsResult->get_ErrorDescription() . PHP_EOL;
} else {

    $detailStatusCode = $mbwayRequestDetailsResult->get_MBWayPaymentDetails()->get_StatusCode();
    $detailAmount = $mbwayRequestDetailsResult->get_MBWayPaymentDetails()->get_Amount();
    $detailOperationId = $mbwayRequestDetailsResult->get_MBWayPaymentDetails()->get_OperationId();

    switch ($detailStatusCode) {
        case "c1":
            print "MB WAY payment confirmed for transaction $transactionId." . PHP_EOL;
            break;
        case "c3":
        case "c6":
        case "vp1":
            print "Waiting capture notification for transaction $transactionId." . PHP_EOL;
            break;
        case "ap1":
            print "Refunded transaction $transactionId." . PHP_EOL;
            break;
        case "c2":
        case "c4":
        case "c5":
        case "c7":
        case "c8":
        case "c9":
        case "vp2":
            print "MB WAY payment cancelled transaction $transactionId." . PHP_EOL;
            break;
    }
}

Process notification

use HipayMbway\MbwayNotification;

$entityBody = file_get_contents('php://input');
$notification = new MbwayNotification($entityBody);
if ($notification->get_isJson() === false) {
    die("Invalid notification received.");
}

$notification_cart_id = $notification->get_ClientExternalReference();
$transactionId = $notification->get_OperationId();
$transactionAmount = $notification->get_Amount();
$transactionStatusCode = $notification->get_StatusCode();

switch ($transactionStatusCode) {
    case "c1":
        print "MB WAY payment confirmed for transaction $transactionId." . PHP_EOL;
        break;
    case "c3":
    case "c6":
    case "vp1":
        print "Waiting capture notification for transaction $transactionId." . PHP_EOL;
        break;
    case "ap1":
        print "Refunded transaction $transactionId." . PHP_EOL;
        break;
    case "c2":
    case "c4":
    case "c5":
    case "c7":
    case "c8":
    case "c9":
    case "vp2":
        print "MB WAY payment cancelled transaction $transactionId." . PHP_EOL;
        break;
}

Request a full or partial refund

use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestRefund;
use HipayMbway\MbwayRequestResponse;
use HipayMbway\MbwayRequestRefundResponse;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management 
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";

/*
 * Operation parameter
 * $transactionId is the id returned on the transaction creation 
 */

$transactionId = 'XXXXXXXXXXXXXXXXX';
$refundAmount = 0.22;

/*
 * Operation  
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestRefund = new MbwayRequestRefund($username, $password, $transactionId, $refundAmount, $entity);
$mbwayRequestRefundResult = new MbwayRequestRefundResponse($mbway->requestRefund($mbwayRequestRefund)->RequestRefundResult);

/*
* Check Operation result  
*/
if ($mbwayRequestRefundResult->get_ErrorCode() <> 0 || !$mbwayRequestRefundResult->get_Success()) {
    
    //Refund not allowed
    //The time elapsed since payment is insufficient.
    //The request has already been made.
    
    print "Unable to requested a refund for transaction $transactionId with amount $refundAmount Euros. Operation returned: " . $mbwayRequestRefundResult->get_ErrorDescription() . PHP_EOL;

} else {

    print "MB WAY refund requested for transaction $transactionId with amount $refundAmount." . PHP_EOL;
}

Check refund status

use HipayMbway\MbwayClient;
use HipayMbway\MbwayRequestRefundDetails;
use HipayMbway\MbwayRequestResponse;
use HipayMbway\MbwayRequestRefundDetailsResponse;
use HipayMbway\MbwayRefundDetailsResult;

/*
 * Account config
 * $sandbox false if account is a production account
 * $entity, $username, $password and $category are provided by customer management 
 */

$sandbox = true;
$entity = 11249;
$username = "hpXXXXXX";
$password = "xxxxxxxx";

/*
 * Operation parameter
 * $transactionId is the id returned on the transaction creation 
 */

$transactionId = 'XXXXXXXXXXXXXXXXX';

/*
 * Operation  
 */

$mbway = new MbwayClient($sandbox);
$mbwayRequestRefundDetails = new MbwayRequestRefundDetails($username, $password, $transactionId, $entity);
$mbwayRequestRefundDetaisResult = new MbwayRequestRefundDetailsResponse($mbway->getRequestRefundDetails($mbwayRequestRefundDetails)->GetRequestRefundDetailsResult);

/*
* Check Operation result  
*/
if ($mbwayRequestRefundDetaisResult->get_ErrorCode() <> 0 || !$mbwayRequestRefundDetaisResult->get_Success()) {

    //Item not found
    print "Unable to get refund status for transaction $transactionId. Operation returned: " . $mbwayRequestRefundDetaisResult->get_ErrorDescription() . PHP_EOL;

} else {
    $refundDetails = $mbwayRequestRefundDetaisResult->get_RefundDetails();
    // New | Success | Unsuccess
    $status = $refundDetails->get_Status();
    switch($status) {
        case $refundDetails::REFUND_STATUS_NEW:
            print "MB WAY refund for transaction $transactionId is pending" . PHP_EOL;
            break;
        case $refundDetails::REFUND_STATUS_SUCCESS:
            print "MB WAY refund for transaction $transactionId was successful" . PHP_EOL;
            break;      
        case $refundDetails::REFUND_STATUS_UNSUCCESS:
            print "MB WAY refund for transaction $transactionId is unsuccessful" . PHP_EOL;
            break;
    }
}

bsolus/mbway-sdk-php-hipay-comprafacil 适用场景与选型建议

bsolus/mbway-sdk-php-hipay-comprafacil 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 32.63k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 10 月 31 日, 在 PHP 生态内属于活跃度较高的组件。

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

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

围绕 bsolus/mbway-sdk-php-hipay-comprafacil 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-10-31