We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
title: laravel 对接支付宝支付 date: 2016-05-27 23:39:01 tags:
omnipay-alipay
这个就不说了, 不明白如何下手的伙伴让运营去和支付宝客服联系吧
将以下代码添加到 composer.json
{ "require": { "lokielse/omnipay-alipay": "dev-master" }}
执行composer命令更新依赖
$ curl -s http://getcomposer.org/installer | php $ php composer.phar update
该库提供了 6 种不同的接口,各种接口有不同的配置和用法,我用过Alipay_Express 和 Alipay_WapExpress,下面会有这两种支付的步骤。
use Omnipay\Omnipay; //调用支付网关, 这一步其实就是配置参数,可以写成通用函数 $gateway = Omnipay::create('Alipay_Express'); //创建网关类 $gateway->setPartner('8888666622221111'); //合作者id $gateway->setKey('your**key**here'); //支付key $gateway->setSellerEmail('[email protected]'); 收款账户email $gateway->setReturnUrl('http://www.example.com/return'); //返回url, 用户支付后会跳转到这个地址, 可以定义支付成功或者支付失败等页面返回增加用户体验 $gateway->setNotifyUrl('http://www.example.com/notify'); //通知url,每次支付完成后, 支付宝服务器会向这个地址发请求,返回支付状态 //设置订单 $options = [ 'out_trade_no' => date('YmdHis') . mt_rand(1000,9999), //你自己网站的唯一订单号 'subject' => 'test', //订单标题 'total_fee' => '0.01', //订单价格 //这里也可以带上其他参数,支付完之后支付宝会返回该参数和对应的值,不过设置了之后后面处理支付状态需要多一步操作。我一般会设置'paytype' => 'alipay', ]; //跳转支付 $response = $gateway->purchase($options)->send(); $response->redirect();
这个可以写在支付是指定的returnurl或者notifyurl对应到控制器里面
use Omnipay\Omnipay; $gateway = Omnipay::create('Alipay_Express'); $gateway->setPartner('8888666622221111'); $gateway->setKey('your**key**here'); $gateway->setSellerEmail('[email protected]'); $options = [ 'request_params' => $_REQUEST, ]; //这条语句前提是你在前面支付的时候没有带其他到参数,如果带了, 需要将其他参数unset, 比如我一般会带上一个&paytype=alipay用来标识是支付宝支付, 所以我就需要在这条语句前先执行unset($_REQUEST['paytype']); if ( $response->isSuccessful() && $response->isTradeStatusOk() ) { echo "支付成功"; //写自己的逻辑, 比如把支付状态写入订单表里面 } else { echo "支付失败"; }
如果你都配置好了的话那就测试吧 应该是手机浏览器访问支付链接会先访问pc版支付宝页面后跳转到支付宝app里面, pc访问的话就是访问pc页面扫码支付
//和上面基本没什么差别 , 差别就是需要带上你的服务器使用openssl生成的rsa私钥和支付宝的公钥, //另外在此之前需要先上传你的rsa公钥到支付宝,[上传RSA公钥](https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.7n6Wbd&treeId=58&articleId=103578&docType=1) use Omnipay\Omnipay; //调用支付网关, 这一步其实就是配置参数,可以写成通用函数 $gateway = Omnipay::create('Alipay_Express'); $gateway->setPartner('8888666622221111'); //合作者id $gateway->setKey('your**key**here'); //支付key $gateway->setSellerEmail('[email protected]'); 收款账户email // private key : [RSA私钥及公钥生成](https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docType=1) //alipay public key : 支付宝公钥, //查看地址为:b.alipay.com->我的商家服务->[查看PID、Key](https://b.alipay.com/order/serviceIndex.htm), //找到合作伙伴密钥管理->查看支付宝公钥。 //**注:PHP和.NET使用DEMO中已有的alipay_public_key.pem密钥文件。** //demo下载地址[https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1](https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1) $gateway->setPrivateKey('这里是一大串rsa钥匙'); $gateway->setAlipayPublicKey('这里是一大串支付宝的公钥'); $gateway->setReturnUrl('http://www.example.com/return'); //返回url, 用户支付后会跳转到这个地址, 可以定义支付成功或者支付失败等页面返回增加用户体验 $gateway->setNotifyUrl('http://www.example.com/notify'); //通知url,每次支付完成后, 支付宝服务器会向这个地址发请求,返回支付状态 //设置订单 $options = [ 'out_trade_no' => date('YmdHis') . mt_rand(1000,9999), //你自己网站的唯一订单号 'subject' => 'test', //订单标题 'total_fee' => '0.01', //订单价格 ]; //跳转支付 $response = $gateway->purchase($options)->send(); $response->redirect();
和Alipay_Express的没有区别
只用手机测试过, 跳转到支付宝手机网页支付的页面。
支付宝文档可能会更新,文档地址链接可能不能用,本文链接更新时间为20160527
其他php框架或者原生php的处理是类似的,希望此篇文章对你以后的开发有帮助。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
title: laravel 对接支付宝支付
date: 2016-05-27 23:39:01
tags:
使用的库
omnipay-alipay
申请支付宝支付
这个就不说了, 不明白如何下手的伙伴让运营去和支付宝客服联系吧
composer 安装git库
将以下代码添加到 composer.json
执行composer命令更新依赖
$ curl -s http://getcomposer.org/installer | php $ php composer.phar update
用法
该库提供了 6 种不同的接口,各种接口有不同的配置和用法,我用过Alipay_Express 和 Alipay_WapExpress,下面会有这两种支付的步骤。
Alipay_EXpress
支付 控制器中:
处理支付状态
这个可以写在支付是指定的returnurl或者notifyurl对应到控制器里面
测试
如果你都配置好了的话那就测试吧
应该是手机浏览器访问支付链接会先访问pc版支付宝页面后跳转到支付宝app里面,
pc访问的话就是访问pc页面扫码支付
Alipay_WapExpress
支付 控制器中:
处理支付状态
和Alipay_Express的没有区别
测试
只用手机测试过, 跳转到支付宝手机网页支付的页面。
文章结束
支付宝文档可能会更新,文档地址链接可能不能用,本文链接更新时间为20160527
其他php框架或者原生php的处理是类似的,希望此篇文章对你以后的开发有帮助。
The text was updated successfully, but these errors were encountered: