Native支付是指商家將支付頁面嵌入在自己的網站中,在用戶購買產品時直接向第三方支付平臺發起支付請求,用戶在網站內完成支付,而不是像傳統支付那樣跳轉到支付平臺頁面付款。Native支付具備操作簡單、風險低、效率高等優點,因此在電商、O2O等領域得到了廣泛應用。本文將主要介紹在PHP中如何集成Native支付的相關內容。
一、Native支付的配置
首先需要在第三方支付平臺那里注冊并獲取到一些必要的信息。以支付寶為例,在開發者中心中創建應用,將必要信息獲取后,在本地php中進行配置即可。以下是在配置中需要的一些參數:
```
$pay_config = [
'partner' =>'[商戶ID]',
'key' =>'[商戶密鑰]',
'seller_id' =>'[賣家ID]',
'notify_url' =>'[異步通知回調地址]',
'return_url' =>'[同步回調地址]',
];
```
二、Native支付的實現
接下來,需要在網站中嵌入支付頁面,匹配上述必要參數,生成加密簽名,最后發起支付請求:
```
//匹配必要參數
$payRequestBuilder = new AlipayTradeWapPayContentBuilder();
//創建請求對象
$payResponse = new AlipayTradeService($pay_config)->wapPay($payRequestBuilder, $pay_config['return_url'],$pay_config['notify_url']);
//返回請求結果
echo $payResponse;
```
三、Native支付的處理
當用戶完成支付操作后,需要在異步通知回調地址中,對支付結果進行處理。以下是支付寶異步通知回調地址中支付結果的處理代碼:
```
//計算得出通知驗證結果
$alipaySevice = new AlipayTradeService($pay_config);
$alipaySevice->writeLog(var_export($_POST,true));
$verify_result = $alipaySevice->check($_POST);
if($verify_result) {//驗證成功
$out_trade_no = htmlspecialchars($_POST['out_trade_no']); //商戶訂單號
$trade_no = htmlspecialchars($_POST['trade_no']); //支付寶交易號
$trade_status = htmlspecialchars($_POST['trade_status']); //交易狀態
if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
//支付成功
}
else {
//支付失敗
}
}
else {
//驗證失敗
}
```
四、Native支付的安全
在集成Native支付時,安全是不可忽視的關鍵點。以下是在支付寶安全中心中提供的一些安全建議:
(1)記錄所有ATM查詢、修改、刪除、授權操作,能夠追查操作人員;
(2)以操作員為中心建立授權模型,對重要操作進行二次授權;
(3) 在客戶端和服務器端都進行輸入安全防范措施,防止SQL注入、跨站點腳本攻擊等;
(4)使用安全的HTTP協議:TLS 1.2以上版本,推薦使用AES 128位及以上加密;
(5)網頁端數字證書使用安全的CA機構頒發的證書,防止篡改;
(6)禁止使用頁面隱藏鏈接、閃字誘鼠標等欺詐手段;
(7)API密鑰需要嚴格保密,必要時定時更新。
Native支付能夠實現操作簡單、風險低、效率高等優點,對于大多數網站來說,都是一個不錯的選擇,但安全是其優勢的前提。若安全措施不到位,黑客攻擊可能會引發商戶的重大損失。因此,我們在集成和使用Native支付時應當注意安全措施。
下一篇css3切割屬性