notchpay / php-sdk
Notch Pay PHP包装器。
Requires (Dev)
- guzzlehttp/guzzle: ^6.2
- scrutinizer/ocular: ^1.1
- squizlabs/php_codesniffer: ^2.3
- vlucas/phpdotenv: ^2.2
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. 准备您的参数
email、amount和currency是最常见的必填参数。请为每位客户发送一个唯一的电子邮件。金额接受数值。货币接受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
贡献指南
有关详细信息,请参阅CONTRIBUTING和CONDUCT
安全性
如果您发现任何安全问题,请发送电子邮件至hello@notchpay.co,而不是使用问题跟踪器。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件