Yii 擴充套件支付寶快速支付介面

2021-06-25 22:23:12 字數 2179 閱讀 6877

使用的是官方提供方的php介面:create_direct_pay_by_user-php-utf-8

將lib下的四個檔案複製至:yii專案\protected\vendor\下

四個檔案分別是:alipay_core.function.php、alipay_md5.function.php、alipay_notify.class.php、alipay_submit.class.php

將ca證書檔案:cacert.pem在

yii專案\目錄和 yii專案\protected\controllers下各複製乙份

'params'=>array(

'alipay_config'=>array(

'partner' =>'',//必填

'key'=>'',//必填

'sign_type'=>strtoupper('md5'),//必填

'input_charset'=> strtolower('utf-8'),//必填

'cacert'=>getcwd().'/cacert.pem',//必填且ca證書檔案能有效訪問,否則會有sign錯誤

'transport'=>'http',//如果你的伺服器支援https請填寫https

),'alipay' =>array(

'seller_email'=>'',//必填

'notify_url'=>'',

'return_url'=>'',//必填

'successpage'=>'account/list',//處理成功後的頁面

'errorpage'=>'shopcart/list',//處理失敗的頁面

),),

然後寫乙個支付的控制器:
<?php

/***author:xiaojiang

*create_time:2014/9/19 16:06

*/class paycontroller extends controller

public function actionnotifyurl()

//注意:

//該種交易狀態只在兩種情況下出現

//1、開通了普通即時到賬,買家付款成功後。

//2、開通了高階即時到賬,從該筆交易成功時間算起,過了簽約時的可退款時限(如:三個月以內可退款、一年以內可退款等)後。

//除錯用,寫文字函式記錄程式運**況是否正常

// logresult("這裡寫入想要除錯的**變數值,或其他執行的結果記錄");

} else if ($_post['trade_status'] == 'trade_success')

//注意:

//該種交易狀態只在一種情況下出現——開通了高階即時到賬,買家付款成功後。

//除錯用,寫文字函式記錄程式運**況是否正常

//logresult("這裡寫入想要除錯的**變數值,或其他執行的結果記錄");

}//——請根據您的業務邏輯來編寫程式(以上**僅作參考)——

echo "success"; //請不要修改或刪除

/} else

}public function actionreturnurl()

}else

}else

}}

一下是兩個上面控制器中用到的兩個處理方法:我是寫在了乙個可以定義全域性方法的functions.php檔案中
你可以把這兩個方法寫在購物車或者其他的模型中進行呼叫

//函式功能:根據支付介面傳回的資料判斷該訂單是否已經支付成功;

//返回值:如果訂單已經成功支付,返回true,否則返回false;

function checkorderstatus($ordid)else

}//處理訂單函式

//更新訂單狀態,寫入訂單支付後返回的資料

function orderhandle($parameter) else

} else

} else

由於yii初始路由方式為index.php?r=xx/xx 所以後面也算是帶參的url,在支付成功後會出現驗證失敗的情況,解決辦法是更改alipy_core.function.php中的

parafilter()方法

function parafilter($para) 

return $para_filter;

}

支付寶支付介面開發

1.簡單點說就是呼叫支付寶那邊的介面方法,然後傳遞資料過去,之後會返回乙個是否成功的值,然後你拿到之後判斷就好了 流程說明 以android平台為例 第4步 呼叫支付介面 此訊息就是本介面所描述的開發包提供的支付物件paytask,將商戶簽名後的訂單資訊傳進pay方法喚起支付寶收銀台,訂單格式具體參...

支付寶介面

支付寶的介面呼叫很不方便,剛做好乙個封裝,實現了虛擬交易和實物交易。解決方案中有三個專案以及ndoc生成的文件,簡單的序列圖 commonalipay,封裝的支付寶介面。testali,asp.net的測試專案 testcommonalipay,nunit的測試專案。呼叫方法 1 引入commona...

支付寶介面

解決方案中有三個專案以及ndoc生成的文件,簡單的序列圖 commonalipay,封裝的支付寶介面。testali,asp.net的測試專案 testcommonalipay,nunit的測試專案。呼叫方法 1 引入commonalipay.dll 2 實現支付寶服務介面的方法呼叫方式 alipa...