首先支付宝的文档真是看得头晕眼花,摸不着北的感觉,网上百度PHP支付宝一堆都是花里胡哨的,看得一脸懵逼。所以自己整理了一下,其实也没那么复杂直接上代码:
php 电脑支付的方法:
/**
* 支付宝支付
*$order_sn 单号 $total_amount 价格
*/
public function alipay($order_sn,$total_amount)
{
require_once INCLUDES_PATH.'class'.DS.'Pay'.DS.'mobile'.DS.'alipaytest/'.'AopClient.php';
$aop = new AopClient();//这个类支付宝php服务端 都要用到 (app支付服务端也要用到这个类)
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';//支付宝网关,也就是接口地址
$aop->appId = '201709010........';//APPID
$aop->rsaPrivateKey =''";//商户的私钥()
$aop->format = 'json';
$aop->apiVersion = '1.0';
$aop->postCharset= 'utf-8';
$aop->signType = 'RSA2';
$request = new AlipayTradePagePayRequest();//支付宝电脑网站支付需要用到的类 这个类支付宝SDK可以下载
$request->setNotifyUrl(HTTP_HOST.'pay/alipay_notify.php');//支付结果的异步通知回调地址
$request->setReturnUrl(HTTP_HOST.'pay/alipay_return.php');//同步回调回调地址
$bizcontent = json_encode(array(
'subject'=>'商品订单'.$order_sn,
'out_trade_no'=>$order_sn,
'body'=>'商品订单',
'total_amount'=>sprintf('%.2f',$total_amount),
'product_code'=>'FAST_INSTANT_TRADE_PAY',//支付类型,APP和电脑支付 手机支付是不一样的 所以这个类型也是不一样的
), JSON_UNESCAPED_UNICODE);
$request->setBizContent($bizcontent);
$test = $aop->pageExecute($request,'post');//支付宝返回来的地址,直接是可以跳转的
echo $test;
}
附上所需要用到的类:

只需要这三个类就好了,支付宝的sdk 满满的一堆 ,但是我们不需要那么多,需要用到类再把它抠出来就好了
app 支付 我们PHP 服务端的代码,其实就是生成一堆支付的参数 直接上代码了,其实和上面的电脑支付没什么区别 只不过是参数有所变动:
/** * 生成支付宝app支付参数 * @param string $title * @param string $order_sn * @param float $amount * @return string */ public function alipay_app($title, $order_sn, $amount) { require_once BASE_DATA_PATH.'/vendors/alipay/AopClient.php'; $aop = new AopClient(); $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = '20170901。。。'; $aop->rsaPrivateKey = ''; //商户私钥 $aop->format = 'json'; $aop->charset = 'UTF-8'; $aop->signType = 'RSA2'; $aop->alipayrsaPublicKey = '';//支付宝公钥 $request = new AlipayTradeAppPayRequest(); $bizcontent = json_encode(array( 'subject'=>$title, 'out_trade_no'=>$order_sn, 'timeout_express'=>'30m', 'total_amount'=>sprintf('%.2f',$amount), 'product_code'=>'QUICK_MSECURITY_PAY', ), JSON_UNESCAPED_UNICODE); $request->setNotifyUrl('http://xxx/control/alipay_notify.php'); $request->setBizContent($bizcontent); $response = $aop->sdkExecute($request); return $response; }
还是三个类

只不过这个类有所变动而已

再者多了一个应用公钥:

电脑支付是不要这个PUBLIC key的
好啦 以上就是支付宝电脑网站支付和app 支付的方法 其实手机支付也是差不多的 变得就是支付类型 和支付类

