Laravel 使用银联支付进行支付开发实例

我们接下来要讲的银联支付还是使用这个Laravel包,并集成OmniPay提供的银联支付(UnionPay)接口——UmniPay UnionPay。

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项目指定目录(比如storage/app/unionpay/certs):

银联支付验证文件

3、配置文件

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

'unionpay' => [
    'driver' => 'UnionPay_Express',
    'options' => [
        'merId' => '777290058120462',
        'certPath' => '/path/to/storage/app/unionpay/certs/PM_700000000000001_acp.pfx',
        'certPassword' =>'000000',
        'certDir'=>'/path/to/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网关。

定义路由

//银联支付处理
Route::get('unionpay/pay','UnionpayController@pay');
//支付后回调页面
Route::post('unionpay/return','UnionpayController@result');
支付

新建控制器UnionPayController,定义pay方法:

public function pay(){

    $gateway = Omnipay::gateway('unionpay');

    $order = [
        'orderId' => date('YmdHis'),
        'txnTime' => date('YmdHis'),
        'orderDesc' => 'My test order title', //订单名称
        'txnAmt' => '100', //订单价格
    ];

    $response = $gateway->purchase($order)->send();
    $response->redirect();
}
 

回调

定义result方法:

public function result(){

    $gateway = Omnipay::gateway('unionpay');
    $response = $gateway->completePurchase(['request_params'=>$_REQUEST])->send();
    if ($response->isPaid()) {
        exit('支付成功!');
    }else{
        exit('支付失败!');
    }
}

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

5、银联支付测试

在浏览中访问http://laravel.app:8000/unionpay/pay,页面会跳转到银联支付页面:

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

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

点击“返回商户”,则页面跳转到http://laravel.app:8000/unionpay/return并显示:

支付成功!

我们这里简单测试了支付和回调接口

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 测试
, 实例
, 接口
配置
laravel 银联支付、laravel开发实例、laravel5.3开发实例、laravel5.1开发实例、laravel5 开发实例,以便于您获取更多的相关知识。

时间: 2024-11-01 05:31:12

Laravel 使用银联支付进行支付开发实例的相关文章

PHP微信支付开发实例_php实例

PHP微信支付开发过程,分享给大家,供大家参考,具体内容如下 1.开发环境 Thinkphp 3.2.3 微信:服务号,已认证 开发域名:http://test.paywechat.com (自定义的域名,外网不可访问) 2.需要相关文件和权限 微信支付需申请开通 微信公众平台开发者文档:http://mp.weixin.qq.com/wiki/home/index.html 微信支付开发者文档:https://pay.weixin.qq.com/wiki/doc/api/index.html

java实现微信支付功能开发实例

管理关于微信支付文档 https://pay.weixin.qq.com/wiki/doc/api/index.html 微信支付普通商户接入支持四种支付方式 刷卡支付 用户打开微信钱包的刷卡的界面,商户扫码后提交完成支付 公众号支付 用户在微信内进入商家H5页面,页面内调用JSSDK完成支付 扫码支付 用户打开"微信扫一扫",扫描商户的二维码后完成支付 APP支付 商户APP中集成微信SDK,用户点击后跳转到微信内完成支付 这里我们来看公众号支付 公众号支付开发步骤 1.设置测试目录

PHP微信支付开发实例

PHP微信支付开发过程,分享给大家,供大家参考,具体内容如下 1.开发环境 Thinkphp 3.2.3 微信:服务号,已认证 开发域名:http://test.paywechat.com (自定义的域名,外网不可访问) 2.需要相关文件和权限 微信支付需申请开通 微信公众平台开发者文档:http://mp.weixin.qq.com/wiki/home/index.html 微信支付开发者文档:https://pay.weixin.qq.com/wiki/doc/api/index.html

thinkphp整合微信支付代码分享_php实例

本文实例为大家分享了thinkphp整合微信支付代码,供大家参考,具体内容如下 下载:支付SDK   将微信支付SDK放在第三方类库Vendor下面,请切记把WxPay.Config.php里面的商户信息修改为您的公众号信息,以避免造成资金的流失. php端代码 public function pay(){ //商户基本信息,可以写死在WxPay.Config.php里面,其他详细参考WxPayConfig.php vendor('Pay.JSAPI'); $tools = new \JsApi

银联强势杀入无卡在线支付第三方支付大战升级

就在首批第三方支付企业拿到牌照后不久,中国银联也强势杀入了基于网上交易的线上支付市场.8日,中国银联在京宣布联合相关各方推出"银联在线支付"和"银联互联网手机支付"两项新业务,这标志着中国银联在依托现有银行卡交易清算系统基础上,建成了无卡交易处理平台,将具备传统优势的线下(商户刷卡等)凭卡支付拓展到了线上无卡支付.分析人士表示,中国银联加入战局,第三方支付市场的争夺将更为激烈. 银联杀入"线上支付" 中国银联作为银行卡跨行交易清算网络服务商,其传

银联和第三方支付之间的关系向来微妙

银联和第三方支付之间的关系向来微妙.而昨日,银联在董事会上的一份"一统天下的"<议案>让双方之间的火药味更浓. 南都记者获悉,在上个月的银联董事会上,银联推出了<关于进一步规范非金融支付机构银联卡交易维护成员银行和银联权益的议案>,督促各成员银行统一行动,逐步将非金融机构银联卡交易全面迁移至银联网络,并首次明确提出了实现该目标的时间节点―――2014年7月1日之前. 业内人士测算表示,如果银联真的如愿收编第三方支付 ,按照2014年网上支付预计8万亿的交易额来看

银联检查第三方支付公司各地分公司,罚金几万到几十万不等

近日,银联检查第三方支付公司的各地分公司,根据各地分公司情况进行处罚,每家分公司罚金几万到几十万不等. 此次处罚主要是因为第三方支付机构套用MCC(商户类别代码),不同的MCC码代表不同行业,刷卡手续费率也不同.比如餐馆手续费率1.25%,百货商店费率0.78%.第三方支付公司为抢占市场,餐馆就可以套用百货商店的MCC码,享受0.78%的手续费率. 对于此次处罚,中国银联昨天表示,对成员机构的违规约束依据的是发改委.央行的有关规定,以及银联卡收单业务规则,是银联作为卡组织,根据与各方共同协商制定

银联与第三方支付之间的竞争日趋白热化

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一边是线下支付市场最大的银行卡转接组织,一边是互联网线上支付市场的巨头,银联和支付宝的明争暗斗渐渐升级. "由于某些众所周知的原因,支付宝将停止所有线下POS业务."8月27日,支付宝在其官方微博上的一纸公告,将支付宝与银联的"积怨"进一步显性化. 支付宝公开表态关掉线下收单业务,在大多数业内人士看来是对银联此前试图"招安"收编第三方支付机构的"示威",但也有业内人士质疑支付宝此

Laravel 5.1 on SAE环境开发教程【附项目demo源码】_php实例

本文实例讲述了Laravel 5.1 on SAE环境开发方法.分享给大家供大家参考,具体如下: Laravel-简洁.优雅的PHP开发框架,为 WEB 艺术家创造的 PHP 框架,如今正式移植到SAE环境. 由于Laravel 5.1相比于Laravel 4有很多的改动,不仅以目录结构更加清晰,而且功能也更丰富.但是Laravel官方还是没有原生支持SAE环境(估计永远不会支持),所以我就做了一个移植版本,可以很优雅的切换本地和SAE环境. 由于SAE的特殊性,那么这几个核心问题就必须要解决