eonx-com/eoneopay-phpsdk

此包已被废弃,不再维护。作者建议使用 eonx-com/payments-phpsdk 包。

与 eoneopay 交互的 PHP SDK

v1.0.8 2019-12-05 03:27 UTC

README

交易

可以通过状态属性确定交易状态。存在交易可能被批准或完成但稍后撤销的情况。状态属性是确定交易实际状态的唯一方法。以下表格列出了状态字段每个值的含义。

状态 描述
1 挂起 已收到请求,等待处理
2 处理中 请求正在处理
10 临时批准 可能被撤销,但资金可能在清算后可用
11 批准 资金将在清算后可用
90 失败/撤销/拒绝 资金无法转账,不可用
80 最终确定/清算 资金已转入目的地,可用

开发

主要仓库: https://github.com/loyaltycorp/eoneopay-phpsdk

添加实体

实体是 SDK 在以 JSON 形式发送到支付之前暴露的类类型,以及响应反序列化到的类类型。

实体位于 src/Endpoints 目录下,在 EoneoPay\PhpSdk\Endpoints 命名空间中。

URI

URI 列出了可以对给定实体执行的可接受操作。这些可以通过在实体实例上调用 uris() 方法以编程方式访问。

实体序列化 / @Groups

@Groups 注解表示在以 JSON 发送之前将要序列化的字段。注解使用 Symfony\Component\Serializer\Annotation\Groups

在以下示例中,$actionUrl 会在发送到支付进行 createupdate 调用时序列化,但 $amount 只会在初始 create 调用中发送。

use Symfony\Component\Serializer\Annotation\Groups;
trait SecurityTrait
{
    /**
     * @Groups({"create", "update"})
     */
    protected $actionUrl;

    /**
     * @Groups({"create"})
     */
    protected $amount;

可以在与 @Assert 注解相同的字段上使用 @Groups 注解。

实体反序列化 / 验证

验证应用于支付返回的 JSON 响应,以确保返回的字段有效。

在以下示例中,$id 必须是字符串,不能为空。 $ewallet 必须反序列化为有效的 Ewallet 类型对象。

注意,使用 @var 注解来发现 $ewallet 内容应该反序列化为的实体类型。

use Symfony\Component\Validator\Constraints as Assert;
trait EwalletFundingTrait
{
    /**
     * @Assert\NotNull()
     * @Assert\Type(type="\EoneoPay\PhpSdk\Endpoints\Ewallet")
     * @var \EoneoPay\PhpSdk\Endpoints\Ewallet|null
     */
    protected $ewallet;

    /**
     * @Assert\NotNull()
     * @Assert\Type(type="string")
     * @var string|null
     */
    protected $id;