alcalyn / payplug-bundle
Payplug 集成到 symfony2
v1.2.5
2015-12-09 21:44 UTC
Requires
- php: >=5.3.2
- symfony/framework-bundle: ~2.1
README
Payplug 集成到 symfony2。
安装步骤
步骤 1: 使用 composer 下载
{ "require": { "alcalyn/payplug-bundle": "1.x" } }
更新您的 composer。
php composer.phar update
步骤 2: 注册 Bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Alcalyn\PayplugBundle\AlcalynPayplugBundle(), ); }
步骤 3: 导入 Payplug IPN 路由
为了创建付款并处理 IPN,该 Bundle 需要启用其路由。
将以下内容添加到 app/config/routing.yml
# Payplug routing alcalyn_payplug: resource: "@AlcalynPayplugBundle/Resources/config/routing.yml" prefix: /
步骤 4: 配置 Bundle 和您的账户设置
将这些行添加到您的 config.yml
# Payplug configuration alcalyn_payplug: account: url: %payplug_account_url% amount_min: %payplug_account_amount_min% amount_max: %payplug_account_amount_max% currencies: %payplug_account_currencies% payplugPublicKey: %payplug_account_payplugPublicKey% yourPrivateKey: %payplug_account_yourPrivateKey%
并将这些行添加到 parameters.yml,以及可选地添加到 parameters.yml.dist
payplug_account_url: ~ payplug_account_amount_min: ~ payplug_account_amount_max: ~ payplug_account_currencies: ~ payplug_account_payplugPublicKey: ~ payplug_account_yourPrivateKey: ~
然后运行此命令以加载您的 Payplug 账户设置
php app/console payplug:account:update
(您的 Payplug 邮箱和密码将被提示)
警告:
请确保不要通过提交您的 parameters.yml 来提交您的账户设置
有关账户配置的更多信息,请参阅 Payplug 文档
注意:
此命令使用 curl 从 https://www.payplug.fr/portal/ecommerce/autoconfig 加载您的账户参数
如果命令失败,请转到 https://www.payplug.fr/portal/ecommerce/autoconfig 并手动复制/粘贴您的参数。
您的 parameters.yml 应该看起来像这样: parameters.yml.example
您还可以 配置您的测试模式。
基本用法
生成付款 URL
<?php use Alcalyn\PayplugBundle\Model\Payment; // ... public function wtfAction() { // Create a payment of 16 € $payment = new Payment(1600, Payment::EUROS); // Get Payplug payment service $payplugPayment = $this->get('payplug.payment'); // Generate url $payplugPayment->generateUrl($payment); // returns "https://www.payplug.fr/p/aca8...ef?data=...&sign=..." }
处理 IPN
当收到 IPN 时,AlcalynPayplugBundle 将触发 PayplugIPNEvent 事件。
此事件包含一个 IPN 实例,您可以通过调用 PayplugIPNEvent::getIPN() 来访问它。
所以您可以像这样监听它
- 创建监听器类
<?php // src/Acme/AcmeBundle/EventListener/PaymentListener.php namespace Acme\AcmeBundle\EventListener; use Alcalyn\PayplugBundle\Event\PayplugIPNEvent; class PaymentListener { /** * @param PayplugIPNEvent $event */ public function onPayment(PayplugIPNEvent $event) { $ipn = $event->getIPN(); // treat $ipn } }
- 注册您的监听器
# src/Acme/AcmeBundle/Resources/services.yml services: acme.listeners.payment: class: Acme\AcmeBundle\EventListener\PaymentListener tags: - { name: kernel.event_listener, event: event.payplug.ipn, method: onPayment }
高级用法
许可证
此 Bundle 在 MIT 许可证下。查看完整的许可证