eonx-com/payments-phpsdk

用于与eoneopay交互的PHP SDK


README

交易

可以使用状态属性确定交易的状态。有些情况下,交易可以被批准或完成,但后来被撤销。状态属性是确定交易实际状态的唯一方式。下面是一个列出每个状态字段值含义的表格。

开发

主仓库: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;

@Groups注解可以与下面的@Assert注解相同的字段一起使用。

实体反序列化 / 验证

验证应用于支付返回的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;