1.配置參數(shù)
'alipay'=>array(
//手機(jī)支付配置
//↓↓↓↓↓↓↓↓↓↓請(qǐng)?jiān)谶@里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
//合作身份者id满着,以2088開頭的16位純數(shù)字
'partner' => '',
//收款支付寶賬號(hào),一般情況下收款賬號(hào)就是簽約賬號(hào)
'seller_id' => '',
//商戶的私鑰(后綴是.pen)文件相對(duì)路徑
'private_key_path' => getcwd().'/Application/Api/Conf/key/rsa_private_key.pem',
//支付寶公鑰(后綴是.pen)文件相對(duì)路徑
'ali_public_key_path'=> getcwd().'/Application/Api/Conf/key/alipay_public_key.pem',
//↑↑↑↑↑↑↑↑↑↑請(qǐng)?jiān)谶@里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
//簽名方式 不需修改
'sign_type' => strtoupper('RSA'),
//字符編碼格式 目前支持 gbk 或 utf-8
'input_charset'=> strtolower('utf-8'),
//ca證書路徑地址,用于curl中ssl校驗(yàn)
//請(qǐng)保證cacert.pem文件在當(dāng)前文件夾目錄中
'cacert' => getcwd().'\\cacert.pem',
//訪問模式,根據(jù)自己的服務(wù)器是否支持ssl訪問颊艳,若支持請(qǐng)選擇https;若不支持請(qǐng)選擇http
'transport' => 'http',
),
2.引入支付寶SDK
public function __construct()
{
parent::__construct();
//引入支付寶APP支付SDK
vendor('Alipay.Corefunction');
vendor('Alipay.RSAfunction');
vendor('Alipay.Notify');
}
3.異步通知
/*
*支付寶異步跳轉(zhuǎn)
*/
public function notifyurl()
{
$alipay_config = C('alipay');
//計(jì)算得出通知驗(yàn)證結(jié)果
$alipayNotify = new \AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();
if($verify_result){//驗(yàn)證成功
$out_trade_no = $_POST['out_trade_no'];
//支付寶交易號(hào)
$trade_no = $_POST['trade_no'];
//交易狀態(tài)
$trade_status = $_POST['trade_status'];
if($trade_status == 'TRADE_FINISHED'||$trade_status == 'TRADE_SUCCESS') {
//判斷該筆訂單是否在商戶網(wǎng)站中已經(jīng)做過處理
//如果沒有做過處理薄霜,根據(jù)訂單號(hào)(out_trade_no)在商戶網(wǎng)站的訂單系統(tǒng)中查到該筆訂單的詳細(xì),并執(zhí)行商戶的業(yè)務(wù)程序
}
echo "success"; //請(qǐng)不要修改或刪除
}else{
//驗(yàn)證失敗
echo "fail";
//調(diào)試用,寫文本函數(shù)記錄程序運(yùn)行情況是否正常
//logResult("這里寫入想要調(diào)試的代碼變量值猪贪,或其他運(yùn)行的結(jié)果記錄");
}
}