partfire/mangopay-bundle

一组用于您项目中的 Symfony 服务,以便更快地集成 MangoPay API。

安装: 71

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 2

类型:symfony-bundle

dev-master 2017-04-13 00:41 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:42:10 UTC


README

Build Status Scrutinizer Code Quality Packagist SensioLabsInsight Twitter Follow

一组用于您项目中的 Symfony 服务,简化与 Mangopay API 的集成。

此包依赖于 官方 Mangopay SDK PHP 用于 Mangopay API v2。这意味着此包仅支持 Mangopay API 版本 v2.01,不支持早期版本。请检查您正在使用哪个版本。

安装

使用 composer,您现在可以简单地要求 master,直到我们有稳定版本

$ composer require partfire/mangopay-bundle:dev-master

配置

将详细信息添加到您的 app/config/parameters.yml 文件中。例如

    mangopay_client_id: my_mango_id
    mangopay_client_password: XXXXXXXXXXXXXXXXXXXXXX
    mangopay_base_url: 'https://api.sandbox.mangopay.com'

还将内容添加到您的 app/AppKernel.php 文件中

    new PartFire\MangoPayBundle\PartFireMangoPayBundle()

示例用法

用户

创建用户

    $userService = $this->container->get('part_fire_mango_pay.services.user');
    
    $userDto = new \PartFire\MangoPayBundle\Models\DTOs\User();
    $userDto->setFirstName('Dick');
    $userDto->setLastName('Jones');
    $userDto->setBirthday(new \DateTime());
    $userDto->setEmail('dick.jones@test.com');
    $userDto->setNationality('GB');
    $userDto->setCountryOfResidence('GB');
    
    $userDtoUpdated = $userService->create($userDto);
    
    if ($userDtoUpdated instanceof \PartFire\MangoPayBundle\Models\DTOs\User) {
        $userDtoUpdated->getId(); //The users MangoPay ID, DTO fully populated.
    }
    
    if ($userDtoUpdated instanceof \PartFire\MangoPayBundle\Models\Exception) {
        //an error you can deal with
    }

钱包

创建钱包

    $walletService = $this->container->get('part_fire_mango_pay.services.wallet');

    $walletDto = new \PartFire\MangoPayBundle\Models\DTOs\Wallet();
    $walletDto->setTag('TAG1');
    $walletDto->setOwenerId('123456');
    //$walletDto->setOwenerIds(['123456']);
    $walletDto->setDescription('A natural users wallet');
    $walletDto->setCurrency('GBP');
    
    $walletDtoUpdated = $walletService->create($walletDto);
        
    if ($walletDtoUpdated instanceof \PartFire\MangoPayBundle\Models\DTOs\Wallet) {
        $walletDtoUpdated->getId(); //The wallet DTO populated with MangoPay ID.
    }
    
    if ($walletDtoUpdated instanceof \PartFire\MangoPayBundle\Models\Exception) {
        //an error you can deal with
    }

服务列表

part_fire_mango_pay.services.user
part_fire_mango_pay.services.wallet
part_fire_mango_pay.services.kyc
part_fire_mango_pay.services.transfer

代码结构说明

在 'Services' 目录中有您客户端代码应使用的服务。这些服务依赖于位于 'Models' 目录中的接口。然后我们在 'Models/Adapters' 目录中实现了这些抽象。这意味着我们的服务依赖于我们的抽象,同时适配器也依赖于我们的抽象。

传递到服务和适配器中的对象是简单的 DTO(数据类型对象)。这些只是具有设置器和获取器的键和值。我们通过适配器将这些对象传递进和出,这样我们的服务/客户端代码就不依赖于 MangoPay SDK。

贡献

请随意向服务等添加更多方法,并创建一个 pull request。如果它们遵循现有结构或您教我更好的方法,我会将它们合并。