摘要:相關官網開發者網站的是有的硬需求的,請在你的服務器上面啟用支持,可以參考我的這篇文章啟用實踐雖然是的,但是那段應該同樣適用于都是一樣的還有一點就是這篇文章只是一個流程的實踐一切以官方的為準請考照進行擴展流程注冊一個賬號自行注冊創建登陸輸入記
相關
官 網: www.paypal.com
開發者網站: developer.paypal.com
paypal的sdk是有TLS1.2的硬需求的,請在你的服務器上面啟用TLS1.2支持,
可以參考我的這篇文章啟用TLS1.2實踐
雖然是windows的,但是apache那段應該同樣適用于linux都是一樣的(apache + php 5.5 + php_openssl)
還有一點就是, 這篇文章只是一個流程的實踐, 一切以官方的SDK為準, 請考照sdk進行擴展
流程 1. 注冊一個paypal賬號自行注冊
2. 創建REST API apps登陸developer.paypal.com > Dashboard > My Apps & Credentials > REST API apps > Create App > 輸入App Name > Create App > 記錄下Clien ID和Secret
Dashboard > Sandbox > Accounts > Profile > Change password
facilitator和buyer的密碼都改了4. 使用SDK發起一個支付 下載sdk
git clone https://github.com/paypal/PayPal-PHP-SDK.git paypal cd paypal composer update
composer怎么安裝不是本文討論的內容, 請google搜索
支付的流程及代碼創建支付獲取支付的地址
跳轉到支付地址
支付->成功會跳轉到回調地址$site["success"]
bb, show code
再說一句, 我是保存到本地的本地地址為 127.0.0.1/paypal/pay.php
setPaymentMethod("paypal"); $item = new Item(); $item->setName($order["title"]) ->setCurrency($order["currency"]) ->setQuantity(1) ->setPrice($order["price"]); $itemList = new ItemList(); $itemList->setItems([$item]); $details = new Details(); $details->setShipping($order["shipping"]) ->setSubtotal($order["price"]); $amount = new Amount(); $amount->setCurrency($order["currency"]) ->setTotal($order["price"] + $order["shipping"]) ->setDetails($details); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($itemList) ->setDescription($order["body"]) ->setInvoiceNumber(uniqid()); $redirectUrls = new RedirectUrls(); $redirectUrls->setReturnUrl($site["success"]) ->setCancelUrl($site["cancel"]); $payment = new Payment(); $payment->setIntent("sale"); $payment->setPayer($payer) ->setRedirectUrls($redirectUrls) ->setTransactions([$transaction]); try { $payment->create($apiContent); } catch (PayPalConnectionException $e) { // get error by $e->getData(); return false; } $pay_url = $payment->getApprovalLink(); // die($pay_url); header("Location: " . $pay_url);
回調return.php
匯率轉換接口
捕獲到的回調數據paypal支持但不限于美元(USD) 歐元(EUR) 日元(JPY) 港元(HKD) 臺幣(TWD), 完整支持請看 Currencies and Currency Codes 至今不支持人民幣,為什么是至今呢?以后肯定會支持的
由于paypal不支持人民幣(CNY)結算, 所以可能在實際的操作中需要把人民幣轉換為美元或者港元結算, 這里就需要用到匯率轉換接口我收集了3種匯率轉換方式Baidu api NOWAPI Yahoo api
Baidu api
我都沒有深度用過,這里也說不上哪個好哪個差,很多人都推薦雅虎接口,相比必有他的可取之處,我百度用起來方便,先百度用著,如果有其他的需求再換口接http://apistore.baidu.com/api...
NOWAPIhttps://www.nowapi.com/api/fi...
Yahoo api這個接口自行搜索,使用起來不是很方便
我這里提供百度的api的例程, 看代碼, 在實際操作中肯定需要再加一些東西, 如超時等異常處理, 這里為了簡單好懂這里就沒加上
function _currency_service($from, $to, $money){ $apikey = "你的百度的apikey"; $url_param = [ "fromCurrency" => $from, "toCurrency" => $to, "amount" => $money ]; // paypal 支持的貨幣 $currency_support = ["AUD", "CAD", "CHF", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "JPY", "NOK", "NZD", "PLN", "SEK", "SGD", "USD"]; if (in_array($to, $currency_support)) return false; $ch = curl_init(); $url = "http://apis.baidu.com/apistore/currencyservice/currency?" . http_build_query($url_param); $header = array( "apikey: ". $apikey, ); curl_setopt($ch, CURLOPT_HTTPHEADER , $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 執行HTTP請求 curl_setopt($ch , CURLOPT_URL , $url); $res = curl_exec($ch); if($ret = json_decode($res)){ $cny = $ret->retData->convertedamount; return $cny; } return false; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30404.html
摘要:點擊結賬,會直接出現中間經歷啦支付流程的三個步驟。跳轉后會異步根據獲取訂單信息到此時還沒有支付。展示第七步的交易結果若用以下的需要配置參考 paypal的沙箱:https://developer.paypal.com/...商家沙箱登錄:https://www.sandbox.paypal.co...paypal的PHP SDK地址:http://paypal.github.io/Pa...
摘要:簡介智能支付按鈕,是全球著名在線支付商提供的一項最新收款功能,其目的是盡可能多的消除結賬中產生的摩擦,即影響買家完成支付的不利因素。和之前的付款方式相比,這應該也是一個改進。服務端商家中設置及時通知商家登陸地址異步回調地址設置參考這里 簡介 Smart Payment Buttons(智能支付按鈕),是全球著名在線支付商PayPal提供的一項最新收款功能,其目的是盡可能多的消除結賬中...
摘要:簡介智能支付按鈕,是全球著名在線支付商提供的一項最新收款功能,其目的是盡可能多的消除結賬中產生的摩擦,即影響買家完成支付的不利因素。和之前的付款方式相比,這應該也是一個改進。服務端商家中設置及時通知商家登陸地址異步回調地址設置參考這里 簡介 Smart Payment Buttons(智能支付按鈕),是全球著名在線支付商PayPal提供的一項最新收款功能,其目的是盡可能多的消除結賬中...
閱讀 701·2021-11-18 10:02
閱讀 2235·2021-11-15 18:13
閱讀 3139·2021-11-15 11:38
閱讀 2934·2021-09-22 15:55
閱讀 3666·2021-08-09 13:43
閱讀 2438·2021-07-25 14:19
閱讀 2449·2019-08-30 14:15
閱讀 3441·2019-08-30 14:15