一,安装&配置(网关支付的闭包)

在composer.json中添加如下依赖:

"ignited/laravel-omnipay": "2.*",

"lokielse/omnipay-alipay": "dev-master"

运行composer update安装这些依赖。

第一种方法:配置文件注册服务

安装完成后在config/app.php中注册服务提供者:

Ignited\LaravelOmnipay\LaravelOmnipayServiceProvider::class

同时添加OmniPay门面到门面数组:

'Omnipay' => Ignited\LaravelOmnipay\Facades\OmnipayFacade::class

最后,通过php artisan vendor:publish生成配置文件config/laravel-omnipay.php,

第二种配置方法:lumen注册服务

此外OmniPay for Laravel 5 & Lumen还支持Lumen。在bootstrap/app.php中注册服务提供者:

$app->register(Ignited\LaravelOmnipay\LumenOmnipayServiceProvider::class);

将laravel-omnipay.php文件复制到config/laravel-omnipay.php,然后在bootstrap/app.php中添加如下代码:

$app->configure('laravel-omnipay');


自己总结:

laravel5.2 以上版本建议使用第一种方法注册闭包,避免报异常错误

laravel 5 建议使用第二种lumen注册,对老版本有很好的支持

 

二、接着再安装银联支付依赖包

1,ignited/laravel-omnipay这个包,这里我们只需要安装银联支付包即可:

composer require lokielse/omnipay-unionpay dev-master

2、获取银联支付配置信息

到银联支付开发者中心注册账户并提交商户资料进行审核,等待审核通过后获取相关证书ID等信息用于填写银联支付配置选项。

如果你是测试的话银联支付提供了相应的测试接口和配置数据:

以及测试银行卡信息:

卡号

卡性质

机构名称

手机号码

密码

CVN2

有效期

证件号

姓名

6216261000000000018

借记卡

平安银行

13552535506

123456

341126197709218366

全渠道

6221558812340000

贷记卡

平安银行

13552535506

123456

123

1711

341126197709218366

互联网

短信验证码

111111

然后我们去https://open.unionpay.com/ajweb/help/file/techFile下载PHP版本的实例代码,比如我们这里测试的是网关支付,那就下载网关支付对应的实例代码,解压下载的压缩文件,然后将下面这个三个文件拷出来放到Laravel项目指定目录(比如public/certs):


老版本PHP测试包

新版本PHP测试包

以下我用的是新版本的PHP测试包

3、配置文件

配置config/laravel-omnipay.php(如果没有该配置文件参考上一节相应操作),添加银联支付配置:

'unionpay' => [

'driver' => 'UnionPay_Express',

'options' => [

'merId' => '777290058120462',

'certPath' => 'certs/acp_test_sign.pfx',

'certPassword' =>'000000',

'certDir'=>'certs',

'returnUrl' => 'Your ReturnUrl Here',

'notifyUrl' => 'Your NotifyUrl Here'

]

]

代码如下:(特别注意路径要写正确)

4、网关种类

OmniPay UnionPay提供了以下支付网关接口:

· Union_Express 银联全产品网关(PC,APP,WAP支付)

· Union_LegacyMobile 银联老网关(APP)

· Union_LegacyQuickPay 银联老网关(PC)

本例中我们使用Union_Express网关。

定义路由

支付

新建控制器UnionPayController,定义UnionPay方法:(下面所有方法都在一个控制器)

 

回调

定义UnionPayReturn方法:

此外,由于该回调请求来自第三方API,无法通过CSRF验证,所以需要在CSRF验证中排除该URL,否则会抛出TokenMismatchException异常,具体排除方法可参考CSRF攻击原理及其防护这篇教程,这里我们要排除的URL unionpay/return。

找到中间件:app\Http\Middleware\VerifyCsrfToken.php

5、银联支付测试

在浏览中访问http://ms.house.com/UnionPay,页面会跳转到银联支付页面:

将测试银行卡号填写到输入框并点击下一步:

将测试卡号对应身份证号码填入输入框,然后点击“免费获取”,最后直接将手机验证码111111填写到验证码输入框,然后点击“确认付款”,页面就会跳转到支付成功页面:

点击“返回商户”,则页面跳转到http://ms.house.com/UnionPayReturn并显示:

支付成功!

这里简单测试了支付和回调接口,更多接口方法使用请参考Omnipay: UnionPay

laravel银联支付相关推荐

  1. laravel5.2 银联支付

    一,安装&配置(网关支付的闭包) 在composer.json中添加如下依赖: "ignited/laravel-omnipay": "2.*", &q ...

  2. laravel 网银支付

    一,安装&配置(网关支付的闭包) 在composer.json中添加如下依赖: "ignited/laravel-omnipay": "2.*", &q ...

  3. java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)

    今天来说讲支付.前端 工做到如今,接入过好几个项目的支付,其中涉及到了微信支付.支付宝支付.银联支付.服务器 三种支付的对接感觉其实总体上大同小异.都遵循同一个流程:微信 1).商户APP向商户服务器 ...

  4. iOS 集成银联支付swift

    ①  首先添加银联支付的SDK到项目中,如图: ② 由于类库使用的C++编写,所以需要写一个插件而且是用OC来写,如图: ③ 然后创建OC与swift的桥接文件,并且引入头文件. ④ 在支付页面调用支 ...

  5. JavaEE 银联支付之网站支付-消费类交易

    以银联网站支付 - 消费类交易 为例 0. 大致逻辑 前端request->后台封装参数->后台进行签名->生成跳转页面(包含表单提交内容)->响应前端(将生成的html写到浏 ...

  6. 【APICloud系列|37】 银联支付的实现

    正式使用请与银联签约 端调用方法: xlUnionPay=api.require('xlUnionPay'); xlUnionPay .xlUnionPay({params},callback(ret ...

  7. iOS 集成银联支付

    转自:http://www.jianshu.com/p/92d615f78509 当初集成支付宝的时候 觉得见了这么丑的代码 加上这么难找的下载地址 在配上几乎为零的文档 寒哥就要吐血了 下午去集成银 ...

  8. java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...

    写在前面:设计模式源于生活,而又高于生活! 为什么要使用设计模式重构代码 使用设计模式可以重构整体架构代码.提高代码复用性.扩展性.减少代码冗余问题. Java高级工程师装逼的技能! 什么是策略模式 ...

  9. 银联支付h5返回商户的地址是post的吗?_php实现银联商务公众号+服务窗支付

    一:接口地址: 测试接口地址:https://qr-test2.chinaums.com... 正式接口地址:https://qr.chinaums.com/netpa... 二:主要参数说明: 接口 ...

最新文章

  1. LeetCode题解——Longest Palindromic Substring
  2. Java程序员从笨鸟到菜鸟之(四十四)细谈struts2(七)数据类型转换详解
  3. Matlab实用程序--图形应用-变换的傅立叶函数曲线
  4. ASP.NET企业开发框架IsLine FrameWork系列之八--AppLogProvider日志框架(下)
  5. 95-910-172-源码-FlinkSQL-Flink SQL提升吞吐的利器 MicroBatch
  6. 模拟java_【最强Java面试题系列】消息队列面试场景 “模拟”
  7. PyTorch 学习笔记(七):PyTorch的十个优化器
  8. 【认知femto】femtocell的认知无线电频谱感知算法性能仿真
  9. 【JSP】div自适应大小
  10. 3DMAX渲染了很久还是黑的或有部分黑​屏?
  11. 政务OA协同办公系统,助力数字政府建设
  12. 闲谈IPv6-源IP地址的选择(RFC3484读后感)
  13. Altium Designer——常见贴片钽电容封装尺寸及特性
  14. 【CSS】如何设置行距、段落间距、缩进格式
  15. 宋丹丹晒年轻旧照 桃眼杏腮被赞美女
  16. HTML文字溢出显示省略号和鼠标放在文字上显示全部文字信息
  17. github免费图床教程
  18. 用过滤器实现file类实现输出目录以及子目下的结尾为.java的文件
  19. 2021 408计算机学科专业基础综合真题及答案(2009-2020)
  20. 利用SpringBoot和Vue实现前后端分离(附源码)

热门文章

  1. 神经网络时间序列分析,神经网络模型可解释性
  2. 俞敏洪:像水一样积蓄自己的力量
  3. 数据存储之Archiver、Unarchiver、偏好设置
  4. 研究称开放式办公布局对大脑有害 转载和评论
  5. BZOJ 2325 [ZJOI2011]道馆之战
  6. Shadowify(PS投影插件)v1.0版本更新
  7. 程序员应该了解的 “基金” 小常识
  8. google账号登录第三方平台实现
  9. 遥感影像制作深度学习样本之多光谱处理
  10. 公司太卷,研发3年经验裸辞,喜获字节/招银等6家大厂offer