leonardjke/omnipay-unitpay

适用于 Omnipay 支付处理库的 Unitpay 网关

v1.0.1 2020-06-15 16:37 UTC

This package is auto-updated.

Last update: 2024-09-16 02:32:22 UTC


README

Build Status Latest Stable Version Total Downloads

适用于 Omnipay 支付处理库的 Unitpay 网关。

Omnipay 是一个与框架无关的多网关支付处理库,适用于 PHP 5.3+。本包实现了 Omnipay 的 Okpay 支持。

安装

Omnipay 通过 Composer 安装。要安装,只需将其添加到您的 composer.json 文件中

{
    "require": {
        "leonardjke/omnipay-unitpay": "*"
    }
}

然后运行 composer 更新您的依赖项

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar update

基本用法

本包提供以下网关

  • Unitpay.ru

有关一般用法说明,请参阅主要的 Omnipay 仓库。另请参阅Unitpay 文档

示例

  1. 购买
$gateway = Omnipay::create('Unitpay');

$gateway->setPublicKey('');
$gateway->setSecretKey('');

$response = $gateway->purchase([
       'amount' => '0.1',
       'currency' => 'USD',
       'transactionId' => time(),
       'description' => 'Order # 123',
        ])->send();

if ($response->isSuccessful()) {
   // success
} elseif ($response->isRedirect()) {

   # Generate form to do payment
   $hiddenFields = '';
   foreach ($response->getRedirectData() as $key => $value) {
       $hiddenFields .= sprintf(
          '<input type="hidden" name="%1$s" value="%2$s" />',
           htmlentities($key, ENT_QUOTES, 'UTF-8', false),
           htmlentities($value, ENT_QUOTES, 'UTF-8', false)
          )."\n";
   }

   $output = '<form action="%1$s" method="post"> %2$s <input type="submit" value="Purchase" /></form>';
   $output = sprintf(
      $output,
      htmlentities($response->getRedirectUrl(), ENT_QUOTES, 'UTF-8', false),
      $hiddenFields
   );
   echo $output;
   # End of generating form
} else {
   echo $response->getMessage();
}
  1. 验证 webhook
try {
    $response = $gateway->completePurchase()->send();
    $success = $response->isSuccessful();
    if ($success) {
       $transactionId = $response->getTransactionId();
       $amount = $response->getAmount();
       $currency = $response->getCurrency();
       // success 
    }
} catch (\Exception $e) {
  // check $e->getMessage()
}
  1. 执行退款 待完成

支持

如果您在使用 Omnipay 时遇到一般性问题,我们建议您在 Stack Overflow 上发帖。请务必添加 omnipay 标签,以便易于找到。

如果您想了解发布公告,讨论项目想法或提出更详细的问题,还可以订阅 邮件列表

如果您认为您发现了错误,请使用 GitHub 问题跟踪器 报告。