reflexece / systempay-bundle
此软件包最新版本(v0.3)没有可用的许可证信息。
Banque Populaire 和 Caisse d'épargne 的支付网关。
v0.3
2015-06-27 09:40 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-28 18:26:30 UTC
README
此软件包允许在 symfony 项目中实现与 SystemPay 工作的支付解决方案。此支付解决方案使用 Systempay。Systempay 是以下银行公司提出的支付网关:
- Banque Populaire (Cyberplus)
- Caisse d'épargne (SPPlus)
安装
步骤 1:使用 Composer 导入
使用 composer
{ "require": { "baptiste-dulac/systempay-bundle": "master" } }
步骤 2:启用插件
在内核中启用软件包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Tlconseil\SystempayBundle\TlconseilSystempayBundle(), ); }
步骤 3:配置软件包
必填字段
tlconseil_systempay: # Credentials site_id: XXXXX # Keys key_dev: XXXXX key_prod: XXXXX # Return url_return: http://www.example.com/payment_return
可选字段(此处字段具有默认值)
# Debug values : ON / OFF debug: ON # Return mode return_mode: GET # Possible values for ctx_mode : TEST / PRODUCTION ctx_mode: TEST # Language language: fr # Success redirect_success_timeout: 1 redirect_success_message: Redirection vers Les Annonces de la Seine dans quelques instants # Error redirect_error_timeout: 1 redirect_error_message: Redirection vers Les Annonces de la Seine dans quelques instants
如何使用
控制器
创建交易
要实例化一个新的交易,您需要在控制器中创建一个操作并调用 tlconseil_systempay
服务。所有必填字段都使用其默认值。您可以在 app/config/config.yml
文件中配置所有交易的常用字段。
要查看哪些字段可用,请参阅:Systempay 文档(第 2.3.1 章)
服务方法
init($currency = 978, $amount = 1000)
允许您指定交易的金额和货币。setOptionnalFields(array)
允许您指定 System Pay 网关的任何字段。
示例
/** * @Route("/initiate-payment/id-{id}", name="pay_online") * @Template() */ public function payOnlineAction($id) { // ... $systempay = $this->get('tlconseil.systempay') ->init() ->setOptionnalFields(array( 'shop_url' => 'http://www.example.com' )) ; return array( 'paymentUrl' => $systempay->getPaymentUrl(), 'fields' => $systempay->getResponse(), ); }
处理服务器响应
此路由将由 Systempay 服务调用,以通知您支付状态。这是正确处理支付验证的唯一方法。
服务方法
responseHandler(Request)
用于更新交易状态(在数据库中)
示例
/** * @Route("/payment/verification") * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function paymentVerificationAction(Request $request) { // ... $this->get('tlconseil.systempay') ->responseHandler($request) ; return new Response(); }
模板
这是 payOnlineAction()
模板的可能样子。您可以使用 systempayForm
twig 函数自动根据服务中创建的字段和 getResponse()
函数返回的字段生成表单。
<div class="row"> <div class="col-sm-8 col-sm-offset-2"> <div class="widget widget-white text-center"> <i class="fa fa-refresh fa-spin margin-top margin-bottom" style="font-size: 50px"></i> <h3>Redirection vers la page de paiement en cours...</h3> <form action="{{ paymentUrl }}" method="POST" id="systempay-form"> {{ systempayForm(fields) | raw }} </form> </div> </div> </div> <script type="text/javascript"> document.getElementById('systempay-form').submit(); </script>