cmiecom / cmi-pay-bundle
CMI网关支付库
v1.0
2019-04-10 15:09 UTC
Requires
- php: ^7.1.3
- symfony/http-foundation: ^3.0|^4.0
- symfony/http-kernel: ^3.0|^4.0
- symfony/serializer: ^3.0|^4.0
- symfony/twig-bundle: ^3.0|^4.0
This package is auto-updated.
Last update: 2024-09-29 05:21:42 UTC
README
将CMI支付模块直接集成到Symfony应用中。
-
CMI支付流程是如何工作的?*
客户在您的网站上填写表单并提交。然后客户将被重定向到CMI支付页面完成支付。一旦支付完成,客户可以选择返回您的网站,同时Cmi将向您的回调URL发送回调。
设置
此包允许您通过最小修改将cmi支付流程添加到您的代码中。这些说明还将指导您安装该包。
安装
使用Composer安装
composer require cmiecom/cmi-pay-bundle
将routes.xml
包含在您的路由文件中
// config/routes.yaml _cmi_pay: resource: '@CmiPayBundle/Resources/config/routes.xml'
用法
渲染表单并将客户重定向到CMI页面支付
在默认路由中配置
// src/Resources/config/routes.xml <route id="cmi_pay_request" controller="cmi.pay.controller::requestPay" path="/cmi/requestpayment" />
并一个渲染表单的控制器操作
namespace CmiPayBundle\Controller; ...... class CmiPayController extends AbstractController { public function requestPay(Request $request) { $params = new CmiPay(); // Setup new payment parameters $okUrl = $this->generateUrl('cmi_pay_okFail', [], UrlGeneratorInterface::ABSOLUTE_URL); $shopUrl = $baseurl = $request->getScheme() . '://' . $request->getHttpHost() . $request->getBasePath(); $failUrl = $this->generateUrl('cmi_pay_okFail', [], UrlGeneratorInterface::ABSOLUTE_URL); $callbackUrl = $this->generateUrl('cmi_pay_callback', [], UrlGeneratorInterface::ABSOLUTE_URL); $rnd = microtime(); //Sample Order Data: $params->setGatewayurl('https://....')// Provided by CMI ->setclientid('600000000')// Provided by CMI ->setTel('05000000') ->setEmail('email@domaine.ma') ->setBillToName('BillToName') ->setBillToCompany('BillToCompany') ->setBillToStreet1('BillToStreet1') ->setBillToStateProv('BillToStateProv') ->setBillToPostalCode('BillToPostalCode') //................. ; //................. } }
twig模板
// src/Resources/views/payrequest.html.twig {% extends 'base.html.twig' %} {% block title %}Hello {% endblock %} {% block body %} <form name="payForm" id="payForm" method="post" action="{{url}}"> {% for name, value in data %} <input type="hidden" name="{{ name }}" value="{{ value }}" /> {% endfor %} </form> {% endblock %} ............
回调
在默认路由中配置
// src/Resources/config/routes.xml <route id="cmi_pay_callback" controller="cmi.pay.controller::callback" path="/cmi/callback" />
并一个控制器操作:回调
namespace CmiPayBundle\Controller; ...... class CmiPayController extends AbstractController { .......... public function callback(Request $request) { ....... } }
twig模板
// src/Resources/views/callback.html.twig
{{response}}
OK / FAIL URL
在默认路由中配置
// src/Resources/config/routes.xml <route id="cmi_pay_okFail" controller="cmi.pay.controller::okFail" path="/cmi/okFail" />
并一个控制器操作:okFail
namespace CmiPayBundle\Controller; ...... class CmiPayController extends AbstractController { .......... public function okFail(Request $request) { ........ } }
twig模板
// src/Resources/views/okFail.html.twig
{{response}}
计算哈希值
控制器操作:hashValue
namespace CmiPayBundle\Controller; ...... class CmiPayController extends AbstractController { .......... public function hashValue($data) { $params = new CmiPay(); $params->setSecretKey('TEST1234');//Secret key generated from CMI Backoffice .......... return $hash; } }