micahbule / phaymongo
用 PHP 编写的 Paymongo 客户端
Requires
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- mockery/mockery: dev-master
- pestphp/pest: ^1.22
- pestphp/pest-plugin-parallel: ^1.2
README
一个非官方的简单 API 客户端,用 PHP 编写,用于 Paymongo
安装
composer require micahbule/phaymongo
使用方法
简单地使用 Phaymongo
类并调用资源方法来创建资源类。在下面的示例中,我们将创建一个支付意向。
<?php use Paymongo\Phaymongo\Phaymongo; function pay() { $client = new Phaymongo('YOUR_PUBLIC_KEY', 'YOUR_SECRET_KEY'); $paymentIntent = $client->paymentIntent()->create(100, ['gcash', 'card']); // do something with the payment intent }
默认情况下,这将返回响应负载中的实际支付意向数据,来自 data
属性。
如果你想让你的客户端返回原始响应负载,只需在实例化客户端时在选项数组中将 unwrap
配置的值设置为 false
。
$client = new Phaymongo('YOUR_PUBLIC_KEY', 'YOUR_SECRET_KEY', ['unwrap' => false]);
如果请求失败,客户端将抛出错误。你可以通过在它周围包裹一个 try-catch
块来简单地处理这个错误。
use Paymongo\Phaymongo\Phaymongo; function pay() { try { $client = new Phaymongo('YOUR_PUBLIC_KEY', 'YOUR_SECRET_KEY'); $paymentIntent = $client->create(100, ['gcash', 'card']); // do something with the payment intent } catch ($e) { /** To get the body of a successful request but failed response, just do the following */ $body = $e->getResponse()->json(); // do something with the error } }
特性
- PSR-4 和 PSR-7 兼容
- 简单直观的 API 设计
支持的 Paymongo 资源
API 文档
所有 加粗 字段是必填字段,而 斜体加粗 字段是可选的。请注意,此库使用配置了基本 Paymongo API URL 的 GuzzleHttp 客户端,因此下面的 URL 是相对的。
new Phaymongo($public_key, $secret_key, $client_ops)
参数
- public_key - 你的 Paymongo 公钥
- secret_key - 你的 Paymongo 秘密密钥
- client_ops.unwrap - 这是一个布尔值,用于确定你的客户端是否会返回原始响应负载数据属性中的资源信息。默认为 true。
- client_ops.return_response - 这是一个布尔值,用于确定客户端是否会返回原始 HTTP 消息对象以进行进一步处理。
方法
- paymentIntent() - 返回一个支付意向资源对象
- paymentMethod() - 返回一个支付方式资源对象
- source() - 返回一个来源资源对象
- payment() - 返回一个付款资源对象
- refund() - 返回一个退款资源对象
- link() - 返回一个链接资源对象
new PaymongoClient($public_key, $secret_key, $client_ops)
父 API 客户端类。如果出于某种原因你需要手动访问资源,你可以实例化或扩展此类并使用以下方法。
参数
- public_key - 你的 Paymongo 公钥
- secret_key - 你的 Paymongo 秘密密钥
- client_ops.unwrap - 这是一个布尔值,用于确定你的客户端是否会返回原始响应负载数据属性中的资源信息。默认为 true。
- client_ops.return_response - 这是一个布尔值,用于确定客户端是否会返回原始 HTTP 消息对象以进行进一步处理。
方法
createRequest($method, $url, $payload, $use_public_key)
构建一个将被 HTTP 客户端发送的请求对象
- method - 要用于请求的 HTTP 动词
- url - 你想要发送请求的资源路径(例如,/payment_intents)
- payload - 要与请求一起发送的任何有效负载(例如,创建资源)
- use_public_key - 一个布尔值,指示客户端是否使用公钥通过标头对请求进行身份验证。 默认为 false,使用密钥。
sendRequest($request, $request_opts)
接收请求对象并执行到Paymongo资源端点
- request - 由
createRequest()
方法生成的请求对象 - request_opts - 任何请求选项(如有)。更多信息请参考此处。
支付意图资源
create($amount, $payment_method_allowed, $payment_method_options, $description, $metadata)
创建Paymongo支付意图对象的函数。
- amount - 交易金额。
- payment_method_allowed - 允许使用的支付方式字符串数组。有关可用支付方式的更多信息,请查看支付意图资源。
- payment_method_options - 包含支付方式选项的对象。用于与信用卡分期付款功能结合使用。
- description - 交易的描述。
- metadata - 一个JSON对象,您可以在此处存储任何其他信息,例如交易参考编号。
retrieveById($id)
通过ID检索Paymongo支付意图对象的函数。
- id - 支付意图ID
attachPaymentMethod($payment_intent_id, $payment_method_id, $payment_method_options, $return_url, $client_key)
将Paymongo支付方式附加到支付意图对象的函数。
- payment_intent_id - 支付意图ID。
- payment_method_id - 支付方式ID。
- payment_method_options - 包含支付方式选项的对象。用于与信用卡分期付款功能结合使用。
- return_url - 用户在成功或失败支付授权步骤后将被重定向到的URL。
- client_key - 如果使用公钥创建,则为支付意图的客户端密钥 -- 通常是在前端创建支付意图的情况。
支付方式资源
create($type, $details, $billing, $metadata)
创建Paymongo支付方式对象的函数。
- type - 支付方式的类型。有关可用支付方式的更多信息,请查看支付方式资源。
- details - 仅适用于
card
类型交易。包含信用卡本身的详细信息。更多信息请参考支付方式资源。 - billing - 包含用户的账单详情。更多信息请参考支付方式资源。
- metadata - 一个JSON对象,您可以在此处存储任何其他信息,例如交易参考编号。
retrieveById($id)
通过ID检索Paymongo支付方式对象的函数
- id - 支付方式ID。
源资源
create($amount, $type, $success_url, $failed_url, $billing, $metadata)
创建Paymongo源对象的函数。
- amount - 交易的金额。
- type - 源类型。目前仅支持
gcash
和grab_pay
值。 - success_url - 用户在成功支付授权和处理后将被重定向到的地址。
- failed_Url - 用户在支付授权和失败处理后将被重定向到的地址。
- billing - 包含用户的账单详情。更多信息请参考源资源。
- metadata - 一个JSON对象,您可以在此处存储任何其他信息,例如交易参考编号。
retrieveById($id)
通过ID检索Paymongo源对象的函数。
- id - 支付方式ID。
支付资源
目前仅用于与GCash或GrabPay等电子钱包支付方式结合使用。
create($amount, $source_id, $description, $statement_descriptor, $metadata)
创建Paymongo支付对象的函数。
- amount - 支付金额。应等于源金额,因为目前不允许部分支付。
- source_id - 要支付的源ID。
- 描述 - 付款的描述。
- 账单描述 - 这将是交易描述显示在您的用户账单上的内容。
- metadata - 一个JSON对象,您可以在此处存储任何其他信息,例如交易参考编号。
retrieveById(id)
一个用于通过ID检索Paymongo付款对象的函数。
- id - 付款ID。
retrieveAll($before, $after, $limit)
一个用于检索多个Paymongo付款对象的函数。
退款资源
create($amount, $payment_id, $reason, $notes, $metadata)
一个用于创建Paymongo退款对象的函数。
- amount - 退款金额。
- payment_id - 要进行退款处理的付款ID。
- reason - 退款原因。查看付款资源以获取所有可用原因。
- notes - 内部备注,您可以在此处添加有关退款的说明。
- metadata - 一个JSON对象,您可以在此处存储任何其他信息,例如交易参考编号。
retrieveById($id)
一个用于通过ID检索Paymongo退款对象的函数。
- id - 付款ID。
链接资源
create($amount, $description, $remarks)
一个用于创建Paymongo链接资源的函数。
- amount - 交易的金额。
- description - 交易的描述。
- remarks - 用于内部备注。此值不会在用户点击生成的链接时看到的结账页面上显示。
retrieveById($id)
- id - 链接ID。
retrieveByReferenceNumber($refNum)
- refNum - 参考编号。
archive($id)
- id - 链接ID。
unarchive($id)
- id - 链接ID。
为什么?
首先,为什么不呢?其次,我们需要在包括
此外,它是开发社区贡献的。
为什么是Phaymongo?它是PHP + Paymongo。 :)