- 相關(guān)推薦
整合支付寶即時(shí)交易+掃碼支付
Thinkphp5技術(shù)小技巧,下面是由百分網(wǎng)小編為大家整理的整合支付寶即時(shí)交易+掃碼支付,喜歡的可以收藏一下!了解更多詳情資訊,請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!
第一步:在配置文件config.php添加配置文件
'ALIPAY_CONFIG' => [
'partner' => '' // partner 從支付寶商戶版?zhèn)人中心獲取
'seller_email' => '' // email 從支付寶商戶版?zhèn)人中心獲取
'key' => '' // key 從支付寶商戶版?zhèn)人中心獲取
'sign_type' => strtoupper(trim('MD5')) // 可選md5 和 RSA
'input_charset' => 'utf-8' // 編碼 (固定值不用改)
'transport' => 'http' // 協(xié)議 (固定值不用改)
'cacert' => EXTEND_PATH.'Alipay/cacert.pem' // cacert.pem存放的位置 (固定值不用改)
'notify_url' => '' // 異步接收支付狀態(tài)通知的鏈接
'return_url' => '' // 頁(yè)面跳轉(zhuǎn) 同步通知 頁(yè)面路徑 支付寶處理完請(qǐng)求后當(dāng)前頁(yè)面自 動(dòng)跳轉(zhuǎn)到商戶網(wǎng)站里指定頁(yè)面的 http 路徑。 (掃碼支付專用)
'private_key_path' => '' //移動(dòng)端生成的私有key文件存放于服務(wù)器的 絕對(duì)路徑 如果為MD5加密方式;此項(xiàng)可為空 (移動(dòng)支付專用)
'public_key_path' => '' //移動(dòng)端生成的公共key文件存放于服務(wù)器的 絕對(duì)路徑 如果為MD5加密方式;此項(xiàng)可為空 (移動(dòng)支付專用)
]
第二步:在公共文件common.php添加公共函數(shù)
function alipay($order){
import('Alipay.AlipaySubmit' EXTEND_PATH '.class.php');
// 獲取配置
$config=config('ALIPAY_CONFIG');
$data=array(
"_input_charset" => $config['input_charset'] // 編碼格式
"logistics_fee" => "0.00" // 物流費(fèi)用
"logistics_payment" => "SELLER_PAY" // 物流支付方式SELLER_PAY(賣家承擔(dān)運(yùn)費(fèi))、BUYER_PAY(買家承擔(dān)運(yùn)費(fèi))
"logistics_type" => "EXPRESS" // 物流類型EXPRESS(快遞)、POST(平郵)、EMS(EMS)
"notify_url" => $config['notify_url'] // 異步接收支付狀態(tài)通知的鏈接
"out_trade_no" => $order['out_trade_no'] // 訂單號(hào)
"partner" => $config['partner'] // partner 從支付寶商戶版?zhèn)人中心獲取
"payment_type" => "1" // 支付類型對(duì)應(yīng)請(qǐng)求時(shí)的 payment_type 參數(shù)原樣返回。固定設(shè)置為1即可
"price" => $order['price'] // 訂單價(jià)格單位為元
"quantity" => "1" // price、quantity 能代替 total_fee。 即存在 total_fee就不能存在 price 和 quantity;存在 price、quantity 就不能存在 total_fee。 (沒(méi)繞明白;好吧;那無(wú)視這個(gè)參數(shù)即可)
"receive_address" => '1' // 收貨人地址 即時(shí)到賬方式無(wú)視此參數(shù)即可
"receive_mobile" => '1' // 收貨人手機(jī)號(hào)碼 即時(shí)到賬方式無(wú)視即可
"receive_name" => '1' // 收貨人姓名 即時(shí)到賬方式無(wú)視即可
"receive_zip" => '1' // 收貨人郵編 即時(shí)到賬方式無(wú)視即可
"return_url" => $config['return_url'] // 頁(yè)面跳轉(zhuǎn) 同步通知 頁(yè)面路徑 支付寶處理完請(qǐng)求后當(dāng)前頁(yè)面自 動(dòng)跳轉(zhuǎn)到商戶網(wǎng)站里指定頁(yè)面的 http 路徑。
"seller_email" => $config['seller_email'] // email 從支付寶商戶版?zhèn)人中心獲取
"service" => "create_direct_pay_by_user" // 接口名稱 固定設(shè)置為create_direct_pay_by_user
"show_url" => $order['show_url'] // 商品展示網(wǎng)址收銀臺(tái)頁(yè)面上商品展示的超鏈接。
"subject" => $order['subject'] // 商品名稱商品的標(biāo)題/交易標(biāo)題/訂單標(biāo) 題/訂單關(guān)鍵字等
);
$alipay=new \AlipaySubmit($config);
$new=$alipay->buildRequestPara($data);
$go_pay=$alipay->buildRequestForm($new 'get''支付');
echo $go_pay;
}
第三步:在控制器創(chuàng)建如Alipay.php文件
public function alipay_return()
{
// 引入支付寶
import('Alipay.AlipayNotify' EXTEND_PATH '.class.php');
$config = $config = config('ALIPAY_CONFIG');
$notify = new \AlipayNotify($config);
// 驗(yàn)證支付數(shù)據(jù)
$status = $notify->verifyReturn();
if($status){
// 下面寫(xiě)驗(yàn)證通過(guò)的邏輯 比如說(shuō)更改訂單狀態(tài)等等 $_GET['out_trade_no'] 為訂單號(hào);
$this->success('支付成功');
}else{
$this->success('支付失敗');
}
}
public function alipay_notify()
{
// 引入支付寶
import('Alipay.AlipayNotify' EXTEND_PATH '.class.php');
$config = $config = config('ALIPAY_CONFIG');
$alipayNotify = new \AlipayNotify($config);
// 驗(yàn)證支付數(shù)據(jù)
$verify_result = $alipayNotify->verifyNotify();
if($verify_result) {
echo "success";
// 下面寫(xiě)驗(yàn)證通過(guò)的邏輯 比如說(shuō)更改訂單狀態(tài)等等 $_POST['out_trade_no'] 為訂單號(hào);
}else {
echo "success";
}
}
public function alipay()
{
$data=array(
'out_trade_no'=>time()
'price'=>1
'subject'=>'測(cè)試'
);
alipay($data);
}
最后導(dǎo)入sdk文件(群文件下載)/extend/Alipay
【整合支付寶即時(shí)交易+掃碼支付】相關(guān)文章:
滬杭甬高速國(guó)慶節(jié)上線支付寶繳費(fèi)功能08-23
《掃一室與掃天下》教學(xué)設(shè)計(jì)范文09-05
無(wú)線鼠標(biāo)對(duì)碼模式設(shè)置08-13
php微信支付之APP支付方法10-08
php如何實(shí)現(xiàn)驗(yàn)證碼06-13
無(wú)線鼠標(biāo)對(duì)碼模式怎么設(shè)置10-11
java如何生成驗(yàn)證碼07-25