一、申請支付寶接口php
二、下載osgit上面的代碼進行改造,地址http://git.oschina.net/smilease/ThinkPay git
首先是要改爲合適本身項目的路徑,要注意文件的名字要符合tp的規範,好比XxController.class.phpsocket
三、測試的時候會出現問題,由於上面的代碼是適用於直接到帳的,我申請到的接口是雙接口,因此要進行改造。測試
四、問題1:調試錯誤,請回到請求來源地,從新發起請求ui
這個就是接口類型不對,須要將參數的類型'service' => 'create_direct_pay_by_user',改爲 'service' => 'trade_create_by_buyer',this
五、問題2:抱歉,沒法完成付款! 交易信息有誤,請從新覈實交易詳情再付款。 錯誤代碼:ILLEGAL_url
將參數:'total_fee' => $vo->getFee()改爲 spa
'price' => 1, .net
'quantity' => 1調試
六、問題3:Class 'Think\Pay\Driver\' not found
七、問題4:抱歉,沒法完成付款 物流信息有誤,請從新覈對後再付款。錯誤代碼:ILLEGAL_LOGISTICS_FORMAT
解決辦法:修改配置參數以下,
public function buildRequestForm(\Think\Pay\PayVo $vo) { //付款金額 $price = "1"; //必填 //商品數量 $quantity = "1"; //必填,建議默認爲1,不改變值,把一次交易當作是一次下訂單而非購買一件商品 //物流費用 $logistics_fee = "0.00"; //必填,即運費 //物流類型 $logistics_type = "EXPRESS"; //必填,三個值可選:EXPRESS(快遞)、POST(平郵)、EMS(EMS) //物流支付方式 $logistics_payment = "SELLER_PAY"; //必填,兩個值可選:SELLER_PAY(賣家承擔運費)、BUYER_PAY(買家承擔運費) $param = array( 'service' => 'trade_create_by_buyer', 'payment_type' => '1', '_input_charset' => 'utf-8', 'seller_email' => $this->config['email'], 'partner' => $this->config['partner'], 'notify_url' => $this->config['notify_url'], 'return_url' => $this->config['return_url'], 'out_trade_no' => $vo->getOrderNo(), 'subject' => $vo->getTitle(), 'body' => $vo->getBody(), //'total_fee' => $vo->getFee() 'price' => $price, 'quantity' => $quantity, 'logistics_fee' => $logistics_fee, 'logistics_type' => $logistics_type, 'logistics_payment' => $logistics_payment, ); ksort($param); reset($param); $arg = ''; foreach ($param as $key => $value) { if ($value) { $arg .= "$key=$value&"; } } $param['sign'] = md5(substr($arg, 0, -1) . $this->config['key']); $param['sign_type'] = 'MD5'; $sHtml = $this->_buildForm($param, $this->gateway,'get'); return $sHtml; }
八、問題5:undefined function fsocketopen()
將fsocketopen 改成了 fsockopen
九、問題6 : Access Denied