ThinkPHP3.2.3框架下使用支付寶介面實現付款功能
1、下載PHP版本的SDK(注:伺服器上的php版本必須在5.5以上,否則會報錯)
2、將SDK資料夾重新命名為alipay並放到TP框架的Vendor資料夾下
3、開啟alipay/lotusphp_runtime/shortcut.php將C函式變更為CC(由於C函式與TP的C函式重複)
4、呼叫介面用Vendor(alipay.Aopsdk)
呼叫例項:
Vendor('AlipaySdk.AopSdk');
$aop = new \AopClient ();
//這是沙箱環境
$aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
//這是正式環境
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = '3333333333';
$aop->rsaPrivateKey = '見金鑰生成工具';
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset= 'utf-8';
$aop->format='json';
$request = new \AlipayTradePagePayRequest ();
$request->setReturnUrl('http://v1.xxxx.com/Home/Test/order');
$request->setNotifyUrl('http://v1.xxxxx.com');
$request-
>setBizContent('{"product_code":"FAST_INSTANT_TRADE_PAY","out_trade_no":"20170320010101002","subject":"Iphone7 16G","total_amount":"18.88","body":"Iphone6 16G"}');
注:
1、在例項化物件的時候要在類的前面新增"\"(一定要新增反斜線)
2、在傳遞請求引數(setBizContent)的時候是json格式,如果引數的值為變數可以先定義一個數組然後在用json_encode轉成json格式
3、在提交付款的時候不要使用AJAX提交,一定要用form表單提交
4、同步通知地址是付款成功後返回給網站的地址(也就是支付成功的頁面),支付成功後會返回引數已get方式返回(包括訂單號),可以根據訂單號更改訂單狀態,給前臺的資訊賦值
5、非同步通知可以填網站的首頁
6、在申請支付寶介面的時候需要填寫的授權回撥地址可以和同步通知地址一樣(客服說看著填我也是很無奈)
7、程式要例項化兩個類,都要加反斜線“\”
8、支付寶的祕鑰可以自己下載工具生成,但是要把商家公鑰傳給支付寶,商傢俬鑰寫到程式裡,支付寶公鑰會自動生成,不用寫
9、支付寶支援沙箱測試環境,有獨立的appid和使用者資訊(在測試的時候不要弄混正式環境和測試環境)
10、這是電腦網站支付的demo