協(xié)程支付網(wǎng)關(guān)(支付寶支付)
組件安裝方法和說(shuō)明
注意:請(qǐng)務(wù)必檢查你的
php
環(huán)境有沒(méi)有安裝php-bcmath
擴(kuò)展,沒(méi)有安裝php-bcmath
擴(kuò)展時(shí)安裝的pay
組件的版本是1.2.17
之前的版本(不是最新)。想要使用最新穩(wěn)定版pay
組件的功能,請(qǐng)先安裝php-bcmath
擴(kuò)展,php
安裝此擴(kuò)展的方法請(qǐng)自行查詢。
composer require easyswoole/pay
支付寶
支付方法
支付寶支付目前支持 7 種支付方法,對(duì)應(yīng)的支付 method 如下:
method | 說(shuō)明 | 參數(shù) | 返回值 |
---|---|---|---|
web | 電腦支付 | Request | Response |
wap | 手機(jī)網(wǎng)站支付 | Request | Response |
app | APP 支付 | Request | Response |
pos | 刷卡支付 | Request | Response |
scan | 掃碼支付 | Request | Response |
transfer | 賬戶轉(zhuǎn)賬 | Request | Response |
mini | 小程序支付 | Request | Response |
barCode | 條碼當(dāng)面支付 | Request | Response |
注意,easyswoole/pay
支付寶支付組件的默認(rèn)簽名為 RSA2
普通公鑰方式簽名,也支持 RSA2
公鑰證書的簽名方式。放置應(yīng)用公私鑰證書、支付寶證書路徑、支付寶根證書路徑的時(shí)候切記核對(duì)。
電腦支付
統(tǒng)一收單下單并支付頁(yè)面接口
/**
* 普通公鑰方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
// 設(shè)置支付配置
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setReturnUrl(null);
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// 設(shè)置 阿里應(yīng)用公鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于支付回調(diào)時(shí)驗(yàn)證簽名
$aliConfig->setPublicKey('阿里應(yīng)用公鑰字符串'); // 示例應(yīng)用公鑰字符串
// 設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串'); // 示例應(yīng)用私鑰字符串
/**
* 公鑰證書方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
/*
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setReturnUrl(null);
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// (必須)設(shè)置 使用公鑰證書方式生密鑰延簽(簽名和驗(yàn)簽方式)
$aliConfig->setCertMode(true);
// (必須)設(shè)置 支付寶公鑰文件路徑
$aliConfig->setCertPath(__DIR__ . '/cert/alipayCertPublicKey_RSA2.crt'); // 示例支付寶公鑰文件路徑
// (必須)設(shè)置 支付寶根證書文件路徑
$aliConfig->setRootCertPath(__DIR__ . '/cert/alipayRootCert.crt'); // 示例支付寶公鑰根證書文件路徑
// (必須)設(shè)置 阿里應(yīng)用公鑰證書文件路徑
$aliConfig->setMerchantCertPath(__DIR__ . '/cert/appCertPublicKey_2016091800538780.crt');
// (必須)設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串'); // 示例應(yīng)用私鑰字符串
*/
// 以上【普通公鑰方式】 和 【公鑰證書方式】 生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式) 這 2 種方式,用戶可自行選擇一種】
$pay = new \EasySwoole\Pay\Pay();
## (面向?qū)ο箫L(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
$order = new \EasySwoole\Pay\AliPay\RequestBean\Web();
// (必須)設(shè)置 商戶訂單號(hào)(商戶訂單號(hào)。64 個(gè)字符以內(nèi)的大小,僅支持字母、數(shù)字、下劃線。需保證該參數(shù)在商戶端不重復(fù)。)
$order->setOutTradeNo(time() . '123456'); // 示例訂單號(hào)(僅供參考)
// (必須)設(shè)置 訂單總金額
$order->setTotalAmount('0.01'); // 示例訂單總金額,單位:元(僅供參考)
// (必須)設(shè)置 商品標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。注意:不可使用特殊字符,如 /,=,& 等。
$order->setSubject('測(cè)試'); // 示例商品標(biāo)題(僅供參考)
// (可選)設(shè)置 訂單描述,默認(rèn)為 null
// $order->setBody(null);
// (可選)設(shè)置 在訂單中設(shè)置支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $order->setNotifyUrl(null); // 等價(jià)于在配置中設(shè)置 支付回調(diào)地址,兩者中只要設(shè)置一次即可
// (可選)設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $order->setReturnUrl(null); // 等價(jià)于在配置中設(shè)置 return_url,兩者中只要設(shè)置一次即可
// 本庫(kù)只預(yù)置了常用的請(qǐng)求參數(shù),沒(méi)預(yù)置的參數(shù)請(qǐng)求使用:$order->addProperty('其他字段','其他字段值');
// 支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
## (數(shù)組風(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
/*
$order = new \EasySwoole\Pay\AliPay\RequestBean\Web([
'out_trade_no' => time() . '123456', // 示例訂單號(hào)(僅供參考)
'total_amount' => '0.01', // 示例訂單總金額,單位:元(僅供參考)
'subject' => '測(cè)試', // 示例商品標(biāo)題(僅供參考)
'額外的字段鍵值' => '額外字段值', // 示例支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
], true);
*/
// 以上 2 種風(fēng)格設(shè)置請(qǐng)求參數(shù),用戶可根據(jù)個(gè)人需要,選其一即可
// 獲取構(gòu)造請(qǐng)求參數(shù)對(duì)象
$res = $pay->aliPay($aliConfig)->web($order);
// 將所有請(qǐng)求參數(shù)轉(zhuǎn)為數(shù)組
var_dump($res->toArray());
// 構(gòu)造請(qǐng)求表單(buildPayHtml 該方法的實(shí)現(xiàn)請(qǐng)看下文)
$html = buildPayHtml(\EasySwoole\Pay\AliPay\GateWay::NORMAL, $res->toArray());
file_put_contents('test.html', $html);
訂單配置參數(shù)
所有訂單配置中,對(duì)于客觀非必選參數(shù),用戶可以自行選擇是否進(jìn)行配置,也可以不進(jìn)行配置,擴(kuò)展包已經(jīng)為您自動(dòng)處理了,比如,product_code
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考 這里,查看「請(qǐng)求參數(shù)」一欄。
參數(shù)查詢:https://opendocs.alipay.com/apis/api_1/alipay.trade.page.pay
生成支付的跳轉(zhuǎn) html
示例
function buildPayHtml($endpoint, $payload)
{
$sHtml = "<form id='alipaysubmit' name='alipaysubmit' action='".$endpoint."' method='POST'>";
foreach ($payload as $key => $val) {
$val = str_replace("'", ''', $val);
$sHtml .= "<input type='hidden' name='".$key."' value='".$val."'/>";
}
$sHtml .= "<input type='submit' value='ok' style='display:none;'></form>";
$sHtml .= "<script>document.forms['alipaysubmit'].submit();</script>";
return $sHtml;
}
手機(jī)網(wǎng)站支付接口 2.0
/**
* 普通公鑰方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
// 設(shè)置支付配置
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setReturnUrl(null);
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// 設(shè)置 阿里應(yīng)用公鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于支付回調(diào)時(shí)驗(yàn)證簽名
$aliConfig->setPublicKey('阿里應(yīng)用公鑰字符串'); // 示例應(yīng)用公鑰字符串
// 設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串'); // 示例應(yīng)用私鑰
/**
* 公鑰證書方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
/*
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setReturnUrl(null);
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// (必須)設(shè)置 使用公鑰證書方式生密鑰延簽(簽名和驗(yàn)簽方式)
$aliConfig->setCertMode(true);
// (必須)設(shè)置 支付寶公鑰文件路徑
$aliConfig->setCertPath(__DIR__ . '/cert/alipayCertPublicKey_RSA2.crt'); // 示例支付寶公鑰文件路徑
// (必須)設(shè)置 支付寶根證書文件路徑
$aliConfig->setRootCertPath(__DIR__ . '/cert/alipayRootCert.crt'); // 示例支付寶公鑰根證書文件路徑
// (必須)設(shè)置 阿里應(yīng)用公鑰證書文件路徑
$aliConfig->setMerchantCertPath(__DIR__ . '/cert/appCertPublicKey_2016091800538780.crt');
// (必須)設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串');
*/
// 以上【普通公鑰方式】 和 【公鑰證書方式】 生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式) 這 2 種方式,用戶可自行選擇一種】
$pay = new \EasySwoole\Pay\Pay();
## (面向?qū)ο箫L(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
$order = new \EasySwoole\Pay\AliPay\RequestBean\Wap();
// (必須)設(shè)置 商品標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。注意:不可使用特殊字符,如 /,=,& 等。
$order->setSubject('測(cè)試'); // 示例商品標(biāo)題(僅供參考)
// (必須)設(shè)置 商戶訂單號(hào)(商戶訂單號(hào)。64 個(gè)字符以內(nèi)的大小,僅支持字母、數(shù)字、下劃線。需保證該參數(shù)在商戶端不重復(fù)。)
$order->setOutTradeNo(time() . '123456'); // 示例訂單號(hào)(僅供參考)
// (必須)設(shè)置 訂單總金額
$order->setTotalAmount('0.01'); // 示例訂單總金額,單位:元(僅供參考)
// (必須)設(shè)置 用戶付款中途退出返回商戶網(wǎng)站的地址
$order->addProperty('quit_url', 'http://www.b3f21.cn'); // 示例中途退出返回商戶網(wǎng)站的地址(僅供參考)
// (可選)設(shè)置 訂單描述,默認(rèn)為 null
// $order->setBody(null);
// (可選)設(shè)置 在訂單中設(shè)置支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $order->setNotifyUrl(null); // 等價(jià)于在配置中設(shè)置 支付回調(diào)地址,兩者中只要設(shè)置一次即可
// (可選)設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $order->setReturnUrl(null); // 等價(jià)于在配置中設(shè)置 return_url,兩者中只要設(shè)置一次即可
// 本庫(kù)只預(yù)置了常用的請(qǐng)求參數(shù),沒(méi)預(yù)置的參數(shù)請(qǐng)求使用:$order->addProperty('其他字段','其他字段值');
// 支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
## (數(shù)組風(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
/*
$order = new \EasySwoole\Pay\AliPay\RequestBean\Wap([
'out_trade_no' => time() . '123456', // 示例訂單號(hào)(僅供參考)
'total_amount' => '0.01', // 示例訂單總金額,單位:元(僅供參考)
'subject' => '測(cè)試', // 示例商品標(biāo)題(僅供參考)
'quit_url' => 'http://www.b3f21.cn', // 示例中途退出返回商戶網(wǎng)站的地址(僅供參考)
'額外的字段鍵值' => '額外字段值', // 示例支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
], true);
*/
// 以上 2 種風(fēng)格設(shè)置請(qǐng)求參數(shù),用戶可根據(jù)個(gè)人需要,選其一即可
// 獲取構(gòu)造請(qǐng)求參數(shù)對(duì)象
$res = $pay->aliPay($aliConfig)->wap($order);
// 將所有請(qǐng)求參數(shù)轉(zhuǎn)為數(shù)組
var_dump($res->toArray());
// 構(gòu)造請(qǐng)求表單(buildPayHtml 該方法的實(shí)現(xiàn)請(qǐng)看上文)
$html = buildPayHtml(\EasySwoole\Pay\AliPay\GateWay::NORMAL, $res->toArray());
file_put_contents('test.html', $html);
訂單配置參數(shù)
所有訂單配置中,對(duì)于客觀非必選參數(shù),用戶可以自行選擇是否進(jìn)行配置,也可以不進(jìn)行配置,擴(kuò)展包已經(jīng)為您自動(dòng)處理了,比如,product_code
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考 這里,查看「請(qǐng)求參數(shù)」一欄。
參數(shù)查詢:https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay
APP支付接口 2.0
/**
* 普通公鑰方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
// 設(shè)置支付配置
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setReturnUrl(null);
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// 設(shè)置 阿里應(yīng)用公鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于支付回調(diào)時(shí)驗(yàn)證簽名
$aliConfig->setPublicKey('阿里應(yīng)用公鑰字符串'); // 示例應(yīng)用公鑰字符串
// 設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串'); // 示例應(yīng)用私鑰
/**
* 公鑰證書方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
/*
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setReturnUrl(null);
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// (必須)設(shè)置 使用公鑰證書方式生密鑰延簽(簽名和驗(yàn)簽方式)
$aliConfig->setCertMode(true);
// (必須)設(shè)置 支付寶公鑰文件路徑
$aliConfig->setCertPath(__DIR__ . '/cert/alipayCertPublicKey_RSA2.crt'); // 示例支付寶公鑰文件路徑
// (必須)設(shè)置 支付寶根證書文件路徑
$aliConfig->setRootCertPath(__DIR__ . '/cert/alipayRootCert.crt'); // 示例支付寶公鑰根證書文件路徑
// (必須)設(shè)置 阿里應(yīng)用公鑰證書文件路徑
$aliConfig->setMerchantCertPath(__DIR__ . '/cert/appCertPublicKey_2016091800538780.crt');
// (必須)設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串');
*/
// 以上【普通公鑰方式】 和 【公鑰證書方式】 生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式) 這 2 種方式,用戶可自行選擇一種】
$pay = new \EasySwoole\Pay\Pay();
## (面向?qū)ο箫L(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
$order = new \EasySwoole\Pay\AliPay\RequestBean\App();
// (必須)設(shè)置 訂單總金額
$order->setTotalAmount('0.01'); // 示例訂單總金額,單位:元(僅供參考)
// (必須)設(shè)置 商品標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。注意:不可使用特殊字符,如 /,=,& 等。
$order->setSubject('測(cè)試'); // 示例商品標(biāo)題(僅供參考)
// (必須)設(shè)置 商戶訂單號(hào)(商戶訂單號(hào)。64 個(gè)字符以內(nèi)的大小,僅支持字母、數(shù)字、下劃線。需保證該參數(shù)在商戶端不重復(fù)。)
$order->setOutTradeNo(time() . '123456'); // 示例訂單號(hào)(僅供參考)
// (可選)設(shè)置 銷售產(chǎn)品碼,商家和支付寶簽約的產(chǎn)品碼,默認(rèn)為 QUICK_MSECURITY_PAY(App支付)。
// $order->addProperty('product_code', 'QUICK_MSECURITY_PAY'); // 示例銷售產(chǎn)品碼(僅供參考)
// (可選)設(shè)置 訂單描述,默認(rèn)為 null
// $order->setBody(null);
// (可選)設(shè)置 在訂單中設(shè)置支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $order->setNotifyUrl(null); // 等價(jià)于在配置中設(shè)置 支付回調(diào)地址,兩者中只要設(shè)置一次即可
// (可選)設(shè)置 return_url(默認(rèn)為 null,可選參數(shù))
// $order->setReturnUrl(null); // 等價(jià)于在配置中設(shè)置 return_url,兩者中只要設(shè)置一次即可
// 本庫(kù)只預(yù)置了常用的請(qǐng)求參數(shù),沒(méi)預(yù)置的參數(shù)請(qǐng)求使用:$order->addProperty('其他字段','其他字段值');
// 支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
## (數(shù)組風(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
/*
$order = new \EasySwoole\Pay\AliPay\RequestBean\Wap([
'out_trade_no' => time() . '123456', // 示例訂單號(hào)(僅供參考)
'total_amount' => '0.01', // 示例訂單總金額,單位:元(僅供參考)
'subject' => '測(cè)試', // 示例商品標(biāo)題(僅供參考)
'額外的字段鍵值' => '額外字段值', // 示例支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
], true);
*/
// 以上 2 種風(fēng)格設(shè)置請(qǐng)求參數(shù),用戶可根據(jù)個(gè)人需要,選其一即可
// 獲取構(gòu)造請(qǐng)求參數(shù)對(duì)象
$res = $pay->aliPay($aliConfig)->app($order);
// 將所有請(qǐng)求參數(shù)轉(zhuǎn)為數(shù)組
var_dump($res->toArray());
訂單配置參數(shù)
所有訂單配置中,對(duì)于客觀非必選參數(shù),用戶可以自行選擇是否進(jìn)行配置,也可以不進(jìn)行配置,擴(kuò)展包已經(jīng)為您自動(dòng)處理了,比如,product_code
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考 這里,查看「請(qǐng)求參數(shù)」一欄。
參數(shù)查詢:https://opendocs.alipay.com/apis/api_1/alipay.trade.app.pay
刷卡支付
/**
* 普通公鑰方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
// 設(shè)置支付配置
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// 設(shè)置 阿里應(yīng)用公鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于支付回調(diào)時(shí)驗(yàn)證簽名
$aliConfig->setPublicKey('阿里應(yīng)用公鑰字符串'); // 示例應(yīng)用公鑰字符串
// 設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串'); // 示例應(yīng)用私鑰
/**
* 公鑰證書方式生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式)
*/
/*
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
### 配置支付公共請(qǐng)求參數(shù)
// (必須)設(shè)置 支付寶分配給開發(fā)者的應(yīng)用ID
$aliConfig->setAppId('2017082000295641');
// (必須)設(shè)置 請(qǐng)求網(wǎng)關(guān)(默認(rèn)為 沙箱模式)
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::NORMAL);
// 設(shè)置 參數(shù)格式(默認(rèn)為 'JSON',可選參數(shù)),不建議修改
// $aliConfig->setFormat('JSON');
// 設(shè)置 請(qǐng)求使用的編碼格式,如utf-8、gbk、gb2312等(默認(rèn)為 'utf-8')
// $aliConfig->setCharset('utf-8');
// 設(shè)置 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2(默認(rèn)為 'RSA2')
$aliConfig->setSignType('RSA2');
// 設(shè)置 調(diào)用的接口版本(默認(rèn)為 '1.0')
// $aliConfig->setApiVersion('1.0');
// 設(shè)置 支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $aliConfig->setNotifyUrl(null);
// 設(shè)置 應(yīng)用授權(quán)參數(shù)(默認(rèn)為 null,可選參數(shù)),詳細(xì)請(qǐng)看(https://opendocs.alipay.com/open/common/105193)
// $aliConfig->setAppAuthToken(null);
// (必須)設(shè)置 使用公鑰證書方式生密鑰延簽(簽名和驗(yàn)簽方式)
$aliConfig->setCertMode(true);
// (必須)設(shè)置 支付寶公鑰文件路徑
$aliConfig->setCertPath(__DIR__ . '/cert/alipayCertPublicKey_RSA2.crt'); // 示例支付寶公鑰文件路徑
// (必須)設(shè)置 支付寶根證書文件路徑
$aliConfig->setRootCertPath(__DIR__ . '/cert/alipayRootCert.crt'); // 示例支付寶公鑰根證書文件路徑
// (必須)設(shè)置 阿里應(yīng)用公鑰證書文件路徑
$aliConfig->setMerchantCertPath(__DIR__ . '/cert/appCertPublicKey_2016091800538780.crt');
// (必須)設(shè)置 阿里應(yīng)用私鑰(支持 .pem 結(jié)尾的格式,默認(rèn)為 PKCS1 格式),用于生成簽名
$aliConfig->setPrivateKey('阿里應(yīng)用私鑰字符串');
*/
// 以上【普通公鑰方式】 和 【公鑰證書方式】 生成密鑰驗(yàn)簽(簽名和驗(yàn)簽方式) 這 2 種方式,用戶可自行選擇一種】
$pay = new \EasySwoole\Pay\Pay();
## (面向?qū)ο箫L(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
$order = new \EasySwoole\Pay\AliPay\RequestBean\Pos();
// (必須)設(shè)置 商戶訂單號(hào)(商戶訂單號(hào)。64 個(gè)字符以內(nèi)的大小,僅支持字母、數(shù)字、下劃線。需保證該參數(shù)在商戶端不重復(fù)。)
$order->setOutTradeNo(time() . '123456'); // 示例訂單號(hào)(僅供參考)
// (必須)設(shè)置 支付授權(quán)碼(詳細(xì)說(shuō)明請(qǐng)看支付寶官網(wǎng)文檔:https://opendocs.alipay.com/apis/api_1/alipay.trade.pay?scene=common)
$order->setAuthCode('289756915257123456'); // 示例支付授權(quán)碼(僅供參考)
// (必須)設(shè)置 商品標(biāo)題/交易標(biāo)題/訂單標(biāo)題/訂單關(guān)鍵字等。注意:不可使用特殊字符,如 /,=,& 等。
$order->setSubject('測(cè)試'); // 示例商品標(biāo)題(僅供參考)
// (可選)設(shè)置 支付場(chǎng)景,(默認(rèn)為 'bar_code')
// $order->addProperty('scene', 'bar_code');
// (可選)設(shè)置 產(chǎn)品碼,默認(rèn)為 'FACE_TO_FACE_PAYMENT'(當(dāng)面付)
// $order->addProperty('product_code', 'FACE_TO_FACE_PAYMENT');
// (可選)設(shè)置 訂單描述,默認(rèn)為 null
// $order->setBody(null);
// (可選)設(shè)置 在訂單中設(shè)置支付寶服務(wù)器主動(dòng)通知商戶服務(wù)器里指定的頁(yè)面http/https路徑,即支付回調(diào)地址(默認(rèn)為 null,可選參數(shù))
// $order->setNotifyUrl(null); // 等價(jià)于在配置中設(shè)置 支付回調(diào)地址,兩者中只要設(shè)置一次即可
// 本庫(kù)只預(yù)置了常用的請(qǐng)求參數(shù),沒(méi)預(yù)置的參數(shù)請(qǐng)求使用:$order->addProperty('其他字段','其他字段值');
// 支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
## (數(shù)組風(fēng)格)設(shè)置請(qǐng)求參數(shù) biz_content,組件自動(dòng)幫你組裝成對(duì)應(yīng)的格式
/*
$order = new \EasySwoole\Pay\AliPay\RequestBean\Wap([
'out_trade_no' => time() . '123456', // 示例訂單號(hào)(僅供參考)
'auth_code' => '289756915257123456', // 示例支付授權(quán)碼(僅供參考)
'product_code' => 'FACE_TO_FACE_PAYMENT', // 示例產(chǎn)品碼,默認(rèn)為 'FACE_TO_FACE_PAYMENT'(當(dāng)面付)
'subject' => '測(cè)試', // 示例商品標(biāo)題(僅供參考)
'額外的字段鍵值' => '額外字段值', // 示例支付其他可選參數(shù)(詳細(xì)請(qǐng)看支付寶接口的可選參數(shù),支付寶接口對(duì)應(yīng)地址請(qǐng)看下文)
], true);
*/
// 以上 2 種風(fēng)格設(shè)置請(qǐng)求參數(shù),用戶可根據(jù)個(gè)人需要,選其一即可
// 獲取構(gòu)造請(qǐng)求參數(shù)對(duì)象
$res = $pay->aliPay($aliConfig)->pos($order);
// 將所有請(qǐng)求參數(shù)轉(zhuǎn)為數(shù)組
$data = $res->toArray();
訂單配置參數(shù)
所有訂單配置中,對(duì)于客觀非必選參數(shù),用戶可以自行選擇是否進(jìn)行配置,也可以不進(jìn)行配置,擴(kuò)展包已經(jīng)為您自動(dòng)處理了,比如,product_code
、auth_code
、scene
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考 這里,查看「請(qǐng)求參數(shù)」一欄。
參數(shù)查詢:https://opendocs.alipay.com/apis/api_1/alipay.trade.pay
掃碼支付
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\Scan();
$order->setSubject('測(cè)試');
$order->setTotalAmount('0.01');
$order->setOutTradeNo(time());
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->scan($order)->toArray();
$response = $aliPay->preQuest($data);
var_dump($response);
// qr_code 當(dāng)前預(yù)下單請(qǐng)求生成的二維碼碼串,可以用二維碼生成工具根據(jù)該碼串值生成對(duì)應(yīng)的二維碼 https://qr.alipay.com/bavh4wjlxf12tper3a
訂單配置參數(shù)
所有訂單配置中,客觀參數(shù)均不用配置,擴(kuò)展包已經(jīng)為大家自動(dòng)處理了,比如,product_code
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考這里,查看「請(qǐng)求參數(shù)」一欄。
參考參數(shù):https://docs.open.alipay.com/api_1/alipay.trade.precreate
單筆轉(zhuǎn)賬到支付寶賬戶接口
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\Transfer();
$order->setSubject('測(cè)試');
$order->setAmount('0.01');
/*
收款方賬戶類型。可取值:
1、ALIPAY_USERID:支付寶賬號(hào)對(duì)應(yīng)的支付寶唯一用戶號(hào)。以2088開頭的16位純數(shù)字組成。
2、ALIPAY_LOGONID:支付寶登錄號(hào),支持郵箱和手機(jī)號(hào)格式。
*/
$order->setPayeeType('ALIPAY_LOGONID');
$order->setPayeeAccount('hcihsn8174@sandbox.com');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->transfer($order)->toArray();
$aliPay->preQuest($data);
var_dump($data);
本接口用的是老版本的 https://docs.open.alipay.com/309/alipay.fund.trans.toaccount.transfer
訂單配置參數(shù)
所有訂單配置中,客觀參數(shù)均不用配置,擴(kuò)展包已經(jīng)為大家自動(dòng)處理了,比如,product_code
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考這里,查看「請(qǐng)求參數(shù)」一欄。
參數(shù)查詢:https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
小程序支付
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\MiniProgram();
$order->setSubject('測(cè)試');
$order->setOutTradeNo(time().'123456');
$order->setTotalAmount('0.01');
$order->setBuyerId('hcihsn8174@sandbox.com');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->miniProgram($order)->toArray();
var_dump($data);
訂單配置參數(shù)
所有訂單配置中,客觀參數(shù)均不用配置,擴(kuò)展包已經(jīng)為大家自動(dòng)處理了,比如,product_code
等參數(shù)。
所有訂單配置參數(shù)和官方無(wú)任何差別,兼容所有功能,所有參數(shù)請(qǐng)參考這里,查看「請(qǐng)求參數(shù)」一欄。
小程序支付接入文檔:https://docs.alipay.com/mini/introduce/pay。
參數(shù)查詢:
訂單查詢
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\OrderFind();
$order->setOutTradeNo(time().'123456');
$aliPay = $pay->aliPay($aliConfig);
var_dump($aliPay->orderFind($order)->toArray());
官方參數(shù)查詢:https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query
退款查詢
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\RefundFind();
$order->setOutTradeNo('20150320010101001');
$order->setOutRequestNo(time().'2014112611001004680073956707');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->refundFind($order)->toArray();
var_dump($aliPay->preQuest($data));
官方參數(shù)查詢:https://docs.open.alipay.com/api_1/alipay.trade.refund
查詢轉(zhuǎn)賬訂單接口
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\TransferFind();
$order->setOutBizNo('3142321423432');
// 二選一
// $order->setOrderId('20160627110070001502260006780837');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->transferFind($order)->toArray();
var_dump($aliPay->preQuest($data));
官方參數(shù)查詢:https://docs.open.alipay.com/api_28/alipay.fund.trans.order.query
交易撤銷接口
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\Cancel();
$order->setOutTradeNo('20150320010101001');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->cancel($order)->toArray();
var_dump($aliPay->preQuest($data));
官方參數(shù)查詢:https://docs.open.alipay.com/api_1/alipay.trade.cancel
交易關(guān)閉接口
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\Close();
$order->setOutTradeNo(time().'123456');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->close($order)->toArray();
var_dump($aliPay->preQuest($data));
官方參數(shù)查詢:https://docs.open.alipay.com/api_1/alipay.trade.close
查詢對(duì)賬單下載地址
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$order = new \EasySwoole\Pay\AliPay\RequestBean\Download();
$order->setBillType('trade');
$order->setBillDate('2016-04-05');
$aliPay = $pay->aliPay($aliConfig);
$data = $aliPay->download($order)->toArray();
var_dump($aliPay->preQuest($data));
官方參數(shù)查詢:https://docs.open.alipay.com/api_15/alipay.data.dataservice.bill.downloadurl.query
驗(yàn)證服務(wù)器數(shù)據(jù)
$aliConfig = new \EasySwoole\Pay\AliPay\Config();
$aliConfig->setGateWay(\EasySwoole\Pay\AliPay\GateWay::SANDBOX);
$aliConfig->setAppId('2016091800538339');
$aliConfig->setPublicKey('阿里公鑰');
$aliConfig->setPrivateKey('阿里私鑰');
$pay = new \EasySwoole\Pay\Pay();
$param = [];//偽代碼,post數(shù)據(jù)
unset($param['sign_type']);//需要忽略sign_type組裝
$order = new \EasySwoole\Pay\AliPay\RequestBean\NotifyRequest($param,true);
$aliPay = $pay->aliPay($aliConfig);
$result = $aliPay->verify($order);
var_dump($result);
服務(wù)器確認(rèn)收到異步通知字符串獲取
可通過(guò)調(diào)用如下方法得到響應(yīng)支付寶的異步通知字符串:'success'/'failure'
\EasySwoole\Pay\AliPay\AliPay::success(); // 成功響應(yīng)
\EasySwoole\Pay\AliPay\AliPay::fail(); // 失敗響應(yīng)