notchpay/php-sdk

此包已被废弃且不再维护。没有建议的替代包。

Notch Pay PHP包装器。

2.2 2023-03-15 10:24 UTC

This package is auto-updated.

Last update: 2023-06-14 09:23:42 UTC


README

这是一个用于Notch Pay的PHP API包装器。

要求

  • Curl 7.34.0或更高版本(除非使用Guzzle)
  • PHP 5.4.0或更高版本
  • OpenSSL v1.0.1或更高版本

安装

通过Composer

    $ composer require notchpay/php-sdk

通过下载

发布页面下载一个版本。解压缩后

    require 'path/to/src/autoload.php';

使用方法

将重定向到通过调用支付/初始化端点收到的授权URL。此URL仅限一次使用,因此请确保为每次付款生成新的URL。

当付款成功时,我们将调用您的回调URL(如在您的仪表板上设置或在初始化交易时设置)并返回第一步中发送的引用作为查询参数。

如果您使用的是测试公钥,我们将调用您的测试回调URL,否则,我们将调用您的实时回调URL。

0. 先决条件

确认您的服务器可以与Notch Pay的服务器建立TLSv1.2连接。大多数最新软件都具备此功能。如果您遇到任何SSL错误,请联系您的服务提供商以获取指导。不要禁用SSL对方验证!

1. 准备您的参数

emailamountcurrency是最常见的必填参数。请为每位客户发送一个唯一的电子邮件。金额接受数值。货币接受ISO 3166货币代码。例如,要接受美元,请发送USD作为货币。

2. 初始化一次性付款

通过调用我们的API来初始化付款。

    $notchpay = new NotchPay\NotchPay(PUBLIC_KEY);
    try
    {
      $tranx = $notchpay->payment->initialize([
        'amount'=>$amount,       // according to currency format
        'email'=>$email,         // unique to customers
        'currency'=>$currency,         // currency iso code
        'callback'=>$callback,         // optional callback url
        'reference'=>$reference, // unique to transactions
      ]);
  } catch(\NotchPay\NotchPay\Exception\ApiException $e){
      print_r($e->getResponseObject());
      die($e->getMessage());
    }

    // store transaction reference so we can query in case user never comes back

    // redirect to page so User can pay
    header('Location: ' . $tranx->authorization_url);

当用户输入他们的付款详细信息时,NotchPay将验证并扣款。它将执行以下所有操作

向您在:https://business.notchpay.co/settings/developer设置的Webhook URL发送一个payment.complete事件

如果未关闭收据,则将HTML收据发送到客户的电子邮件。

在您向客户付款之前,请通过我们的验证端点进行服务器端调用以确认付款的状态和属性。

3. 验证交易

在我们回调后,请在给予价值之前验证交易。

    $reference = isset($_GET['reference']) ? $_GET['reference'] : '';
    if(!$reference){
      die('No reference supplied');
    }

    // initiate the Library's NotchPay Object
    $notchpay = new NotchPay\NotchPay(PUBLIC_KEY);
    try
    {
      // verify using the library
      $tranx = $notchpay->payment->verify([
        'reference'=>$reference, // unique to transactions
      ]);
    } catch(\NotchPay\NotchPay\Exception\ApiException $e){
      print_r($e->getResponseObject());
      die($e->getMessage());
    }

    if ('complete' === $tranx->status) {
      // transaction was successful...
      // please check other things like whether you already gave value for this ref
      // if the email matches the customer who owns the product etc
      // Give value
    }

5. 结束说明

通常,在构建notchpay对象后进行API请求,可以这样调用资源/方法:$notchpay->{resource}->{method}();对于get操作,使用$notchpay->{resource}(id),要列出资源则使用$notchpay->{resource}s()

目前,我们支持:'customer','payment'。要指定参数,请发送为一个数组。

查看更多示例调用,请参考SAMPLES

变更日志

有关最近更改的详细信息,请参阅CHANGELOG

贡献指南

有关详细信息,请参阅CONTRIBUTINGCONDUCT

安全性

如果您发现任何安全问题,请发送电子邮件至hello@notchpay.co,而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件