首先支付寶的文檔真是看得頭暈眼花,摸不着北的感覺,網上百度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 支付的方法 其實手機支付也是差不多的 變得就是支付類型 和支付類

