这个就不说了, 不明白如何下手的伙伴让运营去和支付宝客服联系吧git
将如下代码添加到 composer.jsongithub
{ "require": { "lokielse/omnipay-alipay": "dev-master" }}
执行composer命令更新依赖json
$ 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('merchant@example.com'); 收款帐户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对应到控制器里面php框架
use Omnipay\Omnipay; $gateway = Omnipay::create('Alipay_Express'); $gateway->setPartner('8888666622221111'); $gateway->setKey('your**key**here'); $gateway->setSellerEmail('merchant@example.com'); $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('merchant@example.com'); 收款帐户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的没有区别app
只用手机测试过, 跳转到支付宝手机网页支付的页面。composer
支付宝文档可能会更新,文档地址连接可能不能用,本文连接更新时间为20160527框架
其余php框架或者原生php的处理是相似的,但愿此篇文章对你之后的开发有帮助。
原文地址:https://www.jianshu.com/p/e0d4f0d0d3f1