用php實(shí)現(xiàn)支付寶支付的方法:1、掃碼登錄支付寶開放平臺(tái)注冊;2、找到開發(fā)信息,并開啟RSA2密鑰模式;3、查看支付寶私鑰公鑰等信息;4、下載支付寶支付的sdk;5、通過創(chuàng)建demo來實(shí)現(xiàn)支付寶支付即可。
怎么用php實(shí)現(xiàn)支付寶支付?
PHP實(shí)現(xiàn)支付寶支付:
提示:這里的demo使用的時(shí)沙箱支付 需要先注冊沙箱賬號(hào)等
注冊沙箱賬號(hào):
首先掃碼登錄支付寶開放平臺(tái)注冊
地址:https://open.alipay.com/
掃碼登錄注冊后進(jìn)入控制臺(tái),滑到頁面中間找到研發(fā)服務(wù)
點(diǎn)擊研發(fā)服務(wù)可以看到自己的沙箱服務(wù)的相關(guān)信息
找到下面的開發(fā)信息,開啟RSA2密鑰模式
點(diǎn)擊查看可以看到自己的支付寶私鑰公鑰等信息 要保存下來,之后要用到!!!
關(guān)于應(yīng)用網(wǎng)關(guān)和授權(quán)回調(diào)地址的設(shè)置可查看文檔
地址:https://developer.aliyun.com/article/707583
到這里我們的沙箱環(huán)境已經(jīng)注冊完成,下面我們開始完成一個(gè)支付的小demo!
下載支付寶支付的sdk:
根據(jù)編程語言下載支付寶的SDK
地址:https://render.alipay.com/p/f/fdjwq8nu2a/pages/home/index.html (這里以PHP語言為例)
解壓目錄如下:demo.php是我自己創(chuàng)建的
下面我們寫一個(gè)簡單的demo來實(shí)現(xiàn)支付寶支付
<?php require "alipay/aop/AopClient.php"; //引入alipay文件 require "alipay/aop/request/AlipayTradeWapPayRequest.php"; //引入alipay文件 //配置支付寶相關(guān)參數(shù) $config = [ 'alipay_appid' = 2021xxxx, //appid 'alipay_rsaprivateKey'=>'xxxx', //開發(fā)者私鑰 'alipay_alipayrsapublicKey'=>'xxxx', //支付寶公鑰 'alipay_notify'=>'http://www.xxx.com/xxx/xxx', //支付寶回調(diào)地址 支付成功后支付寶會(huì)把消息發(fā)送給此接口,在此接口中完成支付成功后的相關(guān)操作即可 ]; $aop = new AopClient(); // $aop->gatewayUrl = "https://openapi.alipaydev.com/gateway.do"; //網(wǎng)關(guān)地址要使用沙箱網(wǎng)關(guān)alipaydev $aop->gatewayUrl = "https://openapi.alipaydev.com/gateway.do"; //網(wǎng)關(guān)地址要使用沙箱網(wǎng)關(guān)alipaydev //支付寶分配給開發(fā)者的應(yīng)用ID $aop->appId = $config['alipay_appid']; //請?zhí)顚戦_發(fā)者私鑰去頭去尾去回車,一行字符串 $aop->rsaPrivateKey = $config['alipay_rsaprivateKey']; //請?zhí)顚懼Ц秾毠€,一行字符串 $aop->alipayrsaPublicKey = $config['alipay_alipayrsapublicKey']; 返回?cái)?shù)據(jù)格式 $aop->format = "json"; // 表單提交字符集編碼 $aop->postCharset = "utf-8"; //簽名類型 $aop->signType = "RSA2"; //api版本 $aop->apiVersion = '1.0'; //實(shí)例化具體API對應(yīng)的request類,類名稱和接口名稱對應(yīng),當(dāng)前調(diào)用接口名稱:alipay.trade.app.pay $request = new AlipayTradeWapPayRequest(); //SDK已經(jīng)封裝掉了公共參數(shù),這里只需要傳入業(yè)務(wù)參數(shù),沙箱環(huán)境的product_code只能是FAST_INSTANT_TRADE_PAY $info = [ 'body' => 'xxx', 'subject' => '標(biāo)題', //訂單標(biāo)題。 'out_trade_no' => time().rand(1111,9999), //商戶網(wǎng)站唯一訂單號(hào) 自定義的訂單號(hào) 'total_amount' => 1, //訂單總金額。單位為元,精確到小數(shù)點(diǎn)后兩位,取值范圍:[0.01,100000000] 。 ]; $info = json_encode($info, JSON_UNESCAPED_UNICODE); //支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁面http/https路徑。 支付回調(diào) $request->setNotifyUrl($config['alipay_notify']); $request->setBizContent($info); //這里和普通的接口調(diào)用不同,使用的是sdkExecute $result = $aop->pageExecute($request); return $result; //$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; //$resultCode = $result->$responseNode->code; //if(!empty($resultCode)&&$resultCode == 10000){ // echo "成功"; //} else { // echo "失敗"; //}
詳細(xì)參數(shù)可查看文檔 https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay?scene=21
下面我們來測試一下
此時(shí)訪問我們的demo.php文件 已經(jīng)成功喚起支付寶支付 下面我們登錄沙箱支付的買家賬號(hào)完成支付即可