首先需要安装支付模块,以我的支付模块ingenico为例。
1,根目录文件ingenico.php (model文件)需要引入支付接口文件,需要引入prestashop支付模块文件
class Ingenico extends PaymentModule
{
}
2,安装的时候会执行install函数,install里挂载钩子
public function install()
{
}
,3,执行钩子函数
public function hookPaymentOptions(KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ if (!this->active) {
return;
}
if (! t h i s − > c h e c k C u r r e n c y ( this->checkCurrency( this>checkCurrency(params[‘cart’])) {
return;
}
$payment_options = [
$this->getIngenicoPaymentOption(),
];
return $payment_options;
}
,4, 执行需要调用的controller文件(modules/ingenico/controllers/front/iframe.php):
public function getIngenicoPaymentOption()
{
$engenicoPaymentOption = new PaymentOption();
e n g e n i c o P a y m e n t O p t i o n − > s e t C a l l T o A c t i o n T e x t ( engenicoPaymentOption->setCallToActionText( engenicoPaymentOption>setCallToActionText(this->l(‘Pay whith Ingenico’))
->setAction( t h i s − > c o n t e x t − > l i n k − > g e t M o d u l e L i n k ( this->context->link->getModuleLink( this>context>link>getModuleLink(this->name, ‘iframe’, array(), true))
->setAdditionalInformation($this->context->smarty->fetch(‘module:Ingenico/views/templates/front/ingenico.tpl’))
->setLogo(Media::getMediaPath(PS_MODULE_DIR . $this->name . ‘/payment.jpg’));
return $engenicoPaymentOption;
}
,5, controller文件调用支付接口生成的url返回到model文件ingenico.php,(controller文件iframe.php需要引入接口文件)
include_once PS_MODULE_DIR . ‘ingenico/vendor/autoload.php’;
include_once PS_MODULE_DIR . ‘ingenico/ingenico.php’;
use Ingenico\Connect\Sdk\Examples\HostedCheckoutTest;

     $ingenico = new Ingenico();$payment_html = $ingenico->execPayment($this->context->cart, 'CreditCard', $con_string);$payment_html .= '<script>document.payForm.submit(); </script>';

,6, model文件 ingenico.php 获取返回的url和其他信息向支付页面发出请求
public function execPayment($cart, $APMType, $con_string){
$payment_html = ’

';
return $payment_html;
}
7,执行回调页面
returnUrl = “http://www.test.com/module/ingenico/test”;
8.回调页面返回的结果传递给model(ingenico.php)
将返回的订单状态插入到数据表

prestashop支付流程相关推荐

  1. php 应用宝支付,U8SDK——应用宝YSDK新的支付流程

    应用宝不管是之前MSDK,还是现在YSDK,对于普通网络手游来说,他的支付方式都只能是游戏币托管的方式.之前接MSDK的时候,也是费了九牛二虎之力才搞定,主要就是被他这个所谓的"游戏币托管模 ...

  2. jsapi支付签名_PHP实现微信支付(jsapi支付)流程步骤详解

    最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路. 前期准备: 1.微信认证服务号,并且开通了微 ...

  3. Java生鲜电商平台-电商支付流程架构实战

    Java生鲜电商平台-电商支付流程架构实战 说明:我一直秉承的就是接地气的业务架构实战.我的文章都有一个这样的核心. 1. 业务场景 2. 解决问题. 3.代码实现. 4.代码重构. 5.总结与复盘. ...

  4. MIP 支付组件,支付流程:

    MIP 支付组件,支付流程: 标题 内容 类型 通用 支持布局 responsive,fixed-height,fill,container,fixed 所需脚本 https://c.mipcdn.c ...

  5. php如何接入微信支付接口,PHP实现微信支付(jsapi支付)流程的方法

    最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路. 前期准备: 1.微信认证服务号,并且开通了微 ...

  6. laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)

    laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案) 参考文章: (1)laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案) (2)http ...

  7. 从支付宝SDK的支付流程理解什么是公钥和私钥,什么是加密和数字签名

    2019独角兽企业重金招聘Python工程师标准>>> 名词解释 什么是公钥和私钥 首先要明白公钥和私钥只是一个相对概念,就是说我们不能单纯的去称呼一对密钥中的一个为公钥,另一个为私 ...

  8. C#招行支付流程(一网通支付-PC扫码支付)

    一.支付流程 1.平台自己生成的二维码(地址链接的二维码,扫码跳转) 2.编写静态页面,测试app扫描平台自己生成的二维码(地址链接二维码,app扫码后手机上展示静态页面进行支付操作) 3.点击立即支 ...

  9. 网站微信扫码支付流程

    网站微信扫码支付流程 一.申请微信公众号 1.首先去微信公众平台申请微信公众号(小程序的也可以),APP_ID是要用的 二.注册商户平台(个体目前不能申请) 1.注册申请通过后,商户号(MCH_ID) ...

最新文章

  1. 《美国教授:中国的研究生基本靠自学成材》
  2. 方舟修改显示服务器个数,方舟生存进化服务器模式设置教程
  3. vim之好用插件-ctrlp.vim
  4. Transformer也能生成图像,新型ViTGAN性能比肩基于CNN的GAN
  5. 【Qt】数据库用户接口层
  6. 关于处理小数点位数的几个oracle函数
  7. 二本非科班30岁转行架构师的老徐:站在巨人的肩膀学习才是捷径
  8. 收文处理和发文处理的环节_公文处理,如何提速增效
  9. python两个dataframe求差集_spark计算两个DataFrame的差集、交集、合集
  10. vue ref 绑定的事件需要移除吗_vue生命周期
  11. 几行python代码实现Windows软件卸载
  12. topjui中combobox使用
  13. NetBeans简介和简单使用
  14. 谁是白盒网络市场最大玩家
  15. 各种零知识证明的比较!
  16. web前端要学哪些东西?主要做什么
  17. 使用 Python 脚本执行国密 sm2 加解密
  18. 排列组合相关公式讲解(Anm,Cnm等)
  19. Spark 持久化(cache和persist的区别)
  20. CTFshow刷题日记-WEB-JAVA(web279-300)Struts2全漏洞复现,Java漏洞复现

热门文章

  1. 三星S7562刷机包 基于官方4.0.4底包制作 桌面清爽简洁 优化精简
  2. 简单工厂模式(Java、Python)、工厂方法模式(Java、Python)
  3. 刚买的y7000最近才发现不能调节屏幕亮度怎么办?
  4. OpenCV二值化--cv2.threshold()函数、cv2.adaptiveThreshold()函数
  5. 七年级计算机与信息安全教案,计算机与信息安全教案
  6. 笔记本计算机左侧插,关闭笔记本计算机的内置显示屏,并连接两个外部显示器以拆分屏幕。...
  7. 第二周作业-2013551605-黎娜
  8. 第05章 你吃错感冒药了吗?
  9. win2008服务器系统局域网共享权限设置
  10. 设计与性能的完美兼容 小米6X拍照神器正式发布