spyrit / smoney
Smoney 客户端
dev-master
2019-08-29 14:18 UTC
Requires
- php: >=5.4.0
- doctrine/collections: ~1.3
- guzzlehttp/guzzle: ~6.0
- jms/serializer: ^1.0.0
This package is auto-updated.
Last update: 2024-08-29 05:03:58 UTC
README
安装
composer install
用法
可以通过 REST 服务使用 S-Money API。
架构
此库基于 GuzzleHttp 和 JMS Serializer 提供了这些服务的实现。为了消费 Web 服务,必须首先创建一个客户端对象和一个包含要发送到 API 的数据的资源外观。
每个客户端都会返回一个包含 Web 服务返回的数据的更新后的外观对象。
配置
客户端需要提供 API URL、您的密钥令牌以及要使用的 API 版本(请参阅官方文档,以确定每个 Web 服务的正确版本)。
版本可以在构造函数中定义,并可以使用 setVersion 方法可选地覆盖。
$client->setVersion('v1');
示例
用户
$token = '<secret_token>'; $version = 'v1'; $userClient = new UserClient( 'https://rest-pp.s-money.fr/api/sandbox', $token, $version, new GuzzleHttp\Client(), JMS\Serializer\SerializerBuilder::create()->build() );
创建简单用户
创建简单用户及其属性
$user = new UserFacade(); $user->appUserId = 'ALFRED'; /* Then, more complex attributes */ /* profile attribute */ $user->profile = new UserProfileFacade(); $user->profile->firstName = 'toto'; $user->profile->lastName = 'foo'; $user->profile->birthdate = new DateTime('1989-08-02T00:00:00', new DateTimeZone('Europe/Paris')); /* address attribute which is UserFacade::$profile attribute */ $user->profile->address = new AddressFacade(); $user->profile->address->country = 'US'; /* Then we POST the $user */ $userClient->create($user);
商业用户
您只需将 'UserFacade' 的 type 属性设置为 2,并将 company 属性设置为 name 和 siret。
$user = new UserFacade(); //... $user->type = 2; $user->company = new CompanyFacade(); $user->company->name = 'HELLO LTD'; $user->company->siret = 'XXXXXXXX'; $userClient->create($user);
卡片支付
$cardPaymentClient = new CardPaymentClient( 'https://rest-pp.s-money.fr/api/sandbox', $token, $version, new Client(), SerializerBuilder::create()->build() );
简单支付
$cardPayment = new CardPaymentFacade(); $cardPayment->urlReturn = 'http://callback_after_payment.com'; $cardPayment->amount = 2; $cardPayment->beneficiary = new SubAccountRefFacade(); $cardPayment->beneficiary->appAccountId = 'client-112'; $cardPaymentClient->create($appUserId, $cardPayment);
多个受益人
为此服务使用 API v2。
$cardPayment = new CardPaymentFacade(); $cardPayment->urlReturn = 'http://callback_after_payment.com'; $cardPayment->payments = new ArrayCollection(); $first = new PaymentFacade(); $first->beneficiary = new subAccountFacade(); $first->beneficiary->appAccountId = 'ALFRED'; $first->amount = 1500; // 15€ (amount in cents) $cardPayment->payments->add($first); $second = new PaymentFacade; //... $cardPayment->payments->add($second); $cardPaymentClient->create($cardPayment);
通过 id 获取一个 CardPayment
$cardPaymentClient->get($orderId);
列出所有 CardPayments
$cardPaymentClient->index();
支付
$payoutClient = new PayoutClient( 'https://rest-pp.s-money.fr/api/sandbox', $token, $version, new Client(), SerializerBuilder::create()->build() );
创建支付
$payout = new PayoutFacade(); $payout->orderId = 'hello'; $payout->amount = 99; $payout->bankAccount = new BankAccountFacade; $payout->bankAccount->id = 25923; $payoutClient->create('<appUserId>', $payout);
付款
$paymentClient = new PaymentClient( 'https://rest-pp.s-money.fr/api/sandbox', $token, $version, new Client(), SerializerBuilder::create()->build() );
创建付款
$payment = new PaymentFacade(); $payment->beneficiary = new SubAccountRefFacade(); $payment->beneficiary->appAccountId = 'YOUR PAL'; $payment->sender = new SubAccountRefFacade(); $payment->sender->appAccountId = 'ALFRED'; $payment->amount = 99; $paymentClient->create('<appUserId>', $payment);