首先下載支付寶pc網站支付的最新sdk代碼




最后在tp的應用目錄里面新建一個控制器、一個方法,編寫這個pay方法的代碼即可接入支付寶pc網站支付
代碼如下:
//支付寶支付測試
public function pay(){
$config = array (
//應用ID,您的APPID。
'app_id' => "201XXXXXXXXX",
//商戶私鑰
'merchant_private_key' => " ",
//異步通知地址
'notify_url' => "http://外網可訪問網關地址/alipay.trade.page.pay-PHP-UTF-8/notify_url.php",
//同步跳轉
'return_url' => "http://外網可訪問網關地址/alipay.trade.page.pay-PHP-UTF-8/return_url.php",
//編碼格式
'charset' => "UTF-8",
//簽名方式
'sign_type'=>"RSA2",
//支付寶網關
'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",
//支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對應APPID下的支付寶公鑰。
'alipay_public_key' => "",
);
//異步通知地址
$config['notify_url'] = "";
//同步跳轉
$config['return_url'] = "";
Vendor('Alipay.pagepay.service.AlipayTradeService');
Vendor('Alipay.pagepay.buildermodel.AlipayTradePagePayContentBuilder');
//商戶訂單號,商戶網站訂單系統中唯一訂單號,必填
//$out_trade_no = trim(I('post.WIDout_trade_no'));
$out_trade_no ='45454545454';
//訂單名稱,必填
//$subject = trim(I('post.WIDsubject'));
$subject ='測試訂單';
//付款金額,必填
//$total_amount = trim(I('post.WIDtotal_amount'));
$total_amount ='12';
//商品描述,可空
//$body = trim(I('post.WIDbody'));
$body ='6666';
//$ud = session('users.uid');
$ud = '123';
$data = array(
'uid'=>$ud, //用戶id
'win_code'=>$out_trade_no, //商戶訂單號
'winsubject'=>$subject, //訂單名稱
'wintotal_amount'=>$total_amount, //付款金額
'winbody'=>$body, //商品描述
'state'=>'zfb', //支付方式
'status'=>'0', //是否支付
'ordertime'=>time() //交易時間
);
//M("pay_record")->add($data); // 保存交易信息
//構造參數
$payRequestBuilder = new \AlipayTradePagePayContentBuilder();
$payRequestBuilder->setBody($body);
$payRequestBuilder->setSubject($subject);
$payRequestBuilder->setTotalAmount($total_amount);
$payRequestBuilder->setOutTradeNo($out_trade_no);
$aop = new \AlipayTradeService($config);
$response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);
//輸出表單
var_dump($response);
}
代碼簡單說明,與支付寶相關的參數需要你手動修改為自己的,還有配置信息也可以放到公共配置文件用用C方法調用,還有訂單和金額等信息可以選擇用參數的形式接收而非寫死。
特別注意,如果遇到C方法與支付寶里面的C方法沖突的問題,找到支付寶的C方法,給它修改一個名字即可哦。還有網關不要用錯,測試網關和實際上線的網關不是同一個。
