laravel银联支付
一,安装&配置(网关支付的闭包)
在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银联支付相关推荐
- laravel5.2 银联支付
一,安装&配置(网关支付的闭包) 在composer.json中添加如下依赖: "ignited/laravel-omnipay": "2.*", &q ...
- laravel 网银支付
一,安装&配置(网关支付的闭包) 在composer.json中添加如下依赖: "ignited/laravel-omnipay": "2.*", &q ...
- java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)
今天来说讲支付.前端 工做到如今,接入过好几个项目的支付,其中涉及到了微信支付.支付宝支付.银联支付.服务器 三种支付的对接感觉其实总体上大同小异.都遵循同一个流程:微信 1).商户APP向商户服务器 ...
- iOS 集成银联支付swift
① 首先添加银联支付的SDK到项目中,如图: ② 由于类库使用的C++编写,所以需要写一个插件而且是用OC来写,如图: ③ 然后创建OC与swift的桥接文件,并且引入头文件. ④ 在支付页面调用支 ...
- JavaEE 银联支付之网站支付-消费类交易
以银联网站支付 - 消费类交易 为例 0. 大致逻辑 前端request->后台封装参数->后台进行签名->生成跳转页面(包含表单提交内容)->响应前端(将生成的html写到浏 ...
- 【APICloud系列|37】 银联支付的实现
正式使用请与银联签约 端调用方法: xlUnionPay=api.require('xlUnionPay'); xlUnionPay .xlUnionPay({params},callback(ret ...
- iOS 集成银联支付
转自:http://www.jianshu.com/p/92d615f78509 当初集成支付宝的时候 觉得见了这么丑的代码 加上这么难找的下载地址 在配上几乎为零的文档 寒哥就要吐血了 下午去集成银 ...
- java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...
写在前面:设计模式源于生活,而又高于生活! 为什么要使用设计模式重构代码 使用设计模式可以重构整体架构代码.提高代码复用性.扩展性.减少代码冗余问题. Java高级工程师装逼的技能! 什么是策略模式 ...
- 银联支付h5返回商户的地址是post的吗?_php实现银联商务公众号+服务窗支付
一:接口地址: 测试接口地址:https://qr-test2.chinaums.com... 正式接口地址:https://qr.chinaums.com/netpa... 二:主要参数说明: 接口 ...
最新文章
- LeetCode题解——Longest Palindromic Substring
- Java程序员从笨鸟到菜鸟之(四十四)细谈struts2(七)数据类型转换详解
- Matlab实用程序--图形应用-变换的傅立叶函数曲线
- ASP.NET企业开发框架IsLine FrameWork系列之八--AppLogProvider日志框架(下)
- 95-910-172-源码-FlinkSQL-Flink SQL提升吞吐的利器 MicroBatch
- 模拟java_【最强Java面试题系列】消息队列面试场景 “模拟”
- PyTorch 学习笔记(七):PyTorch的十个优化器
- 【认知femto】femtocell的认知无线电频谱感知算法性能仿真
- 【JSP】div自适应大小
- 3DMAX渲染了很久还是黑的或有部分黑​屏?
- 政务OA协同办公系统,助力数字政府建设
- 闲谈IPv6-源IP地址的选择(RFC3484读后感)
- Altium Designer——常见贴片钽电容封装尺寸及特性
- 【CSS】如何设置行距、段落间距、缩进格式
- 宋丹丹晒年轻旧照 桃眼杏腮被赞美女
- HTML文字溢出显示省略号和鼠标放在文字上显示全部文字信息
- github免费图床教程
- 用过滤器实现file类实现输出目录以及子目下的结尾为.java的文件
- 2021 408计算机学科专业基础综合真题及答案(2009-2020)
- 利用SpringBoot和Vue实现前后端分离(附源码)