欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Paypal支付不完全指北

 更新時(shí)間:2020年06月04日 14:25:29   作者:瘋子蟈蟈  
這篇文章主要介紹了Paypal支付不完全指北,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

啥都不說(shuō),先吐槽

Paypal 真心坑爹,跟國(guó)內(nèi)支付完全沒(méi)法比,能不接入就不接入吧!??!

準(zhǔn)備工作

重要事情

Paypal下單支付后,需要主動(dòng)跟paypal確認(rèn)收款(capture),否則該筆訂單并不是完成狀態(tài)?。?!

賬號(hào)

自己前往Paypal develop注冊(cè)一個(gè)吧,注意區(qū)分沙箱(sandbox)和正式(live)賬號(hào)即可。
用沙盒賬號(hào)開(kāi)發(fā),還可以創(chuàng)建多個(gè)沙盒的paypal賬號(hào),可以用于沙盒測(cè)試支付。

下單方式

跟國(guó)內(nèi)的支付寶和微信有區(qū)別,paypal可以直接在客戶端下單。

支持客服端、服務(wù)端下單。各有利弊,看具體需求來(lái)定咯

  • 客服端下單,可以調(diào)起Paypal APP(ios 和 android), 缺點(diǎn)是服務(wù)端無(wú)法及時(shí)知曉下單過(guò)程,需要客戶端及時(shí)通知
  • 服務(wù)端或者webhooks服務(wù)端下單,只能打開(kāi)paypal 網(wǎng)頁(yè)支付。

無(wú)論何種下單,paypal 都沒(méi)有采用加密機(jī)制,全部都是明文,所以在檢校訂單信息時(shí)需要格外注意

客戶端下單

  • JavaScript
  • ios sdk
  • android sdk

客服端直接下單,需要保證客服端接收到的訂單信息時(shí)準(zhǔn)確的(最好后端加密訂單信息,客戶端解密并檢驗(yàn)數(shù)據(jù)完整性)

JavaScript

JavaScript直接接入,是通過(guò)paypal js直接生成一個(gè)iframe用于支付。
其中需要注意的是,paypal生成的按鈕只有幾個(gè)基本樣式可選,無(wú)法直接自定義樣式(我是沒(méi)有找到相關(guān)文檔,不排除可以自定義的可能。如果有麻煩也告訴下我)。

使用方式

// 如果默認(rèn)貨幣不是美元,需要在后面添加貨幣參數(shù)
<script src="https://www.paypal.com/sdk/js?client-id=sb"></script> 
paypal.Buttons({
createOrder: function(data, actions) {
 // This function sets up the details of the transaction, including the amount and line item details.
 return actions.order.create({
  purchase_units: [{
   amount: {
    value: '0.01'
   }
  }]
 });
},
onApprove: function(data, actions) {},
onCancel: function(){},
onError: function(){}
}).render('#paypal-button-container');

雖然目前無(wú)法自定義按鈕,但是我們可以是paypal生成的按鈕隱藏,用自己的按鈕蓋住,然后是設(shè)置css屬性pointer-events:none;來(lái)屏蔽事件即可。

Ios || android

Ios 和 andorid 的接入方式與JavaScript類(lèi)似,只要引入相應(yīng)的SDK,非常簡(jiǎn)單的就可以下單。SDK quickstart

服務(wù)端下單(推薦)

因?yàn)閜aypal沒(méi)有采用加密機(jī)制,同時(shí)在弱網(wǎng)情況下無(wú)法保證客戶端可以及時(shí)通知服務(wù)端訂單狀態(tài)的改變,選用服務(wù)端下單是相對(duì)安全的。

建議在下單時(shí),發(fā)送完整的訂單金額信息,paypal會(huì)對(duì)相關(guān)金額做檢校,如果更方面金額不一致(總價(jià) !== 運(yùn)費(fèi)+稅費(fèi)+商品數(shù)量 * 商品單價(jià)+…… ),是不能下單的。同時(shí)也可以讓買(mǎi)家確認(rèn)該筆訂單的明細(xì),用戶體驗(yàn)和安全性都有提高。

順便吐槽下paypal的沙盒環(huán)境,如果你請(qǐng)求超時(shí),請(qǐng)不要見(jiàn)怪,這不是你的問(wèn)題,是沙盒環(huán)境太爛。(PS:不知道是不是與服務(wù)端語(yǔ)言相關(guān),PHP和nodejs對(duì)接paypal,性能差別很大,同一時(shí)間,同一個(gè)沙盒賬號(hào),nodejs請(qǐng)求基本保持在5s以?xún)?nèi),php在15s左右)

基本下單參數(shù)

{
  "intent": "CAPTURE",
  "purchase_units": [
    {
      "reference_id": "order_id",
      // 總價(jià)
      "amount": {
        "value": "200",
        "currency_code": "RMB"
      },
      // 價(jià)格明細(xì)
      "breakdown": {
        // 商品總價(jià)
        "item_total": {
          "value": "180",
          "currency_code": "RMB"
        },
        // 運(yùn)費(fèi)
        "shipping": {
          "value": "20",
          "currency_code": "RMB"
        }
        // …… 還有稅費(fèi)之類(lèi)的
      },
      // 商品明細(xì)
      "items": [
        {
          "name": "goods",
          "unit_amount": {
            "value": "90",
            "currency_code": "RMB"
          },
          "quantity": 2,// 數(shù)量
          "sku": "sku"
        }
      ]
      //...地址之類(lèi)的其他參數(shù)
    }
  ],
  "application_context": {
    "cancel_url": "",
    "return_url": ""
  }
}

支付時(shí)序圖


高清在線圖片

再次強(qiáng)調(diào): Paypal下單支付后,需要主動(dòng)跟paypal確認(rèn)收款(capture),否則該筆訂單并不是完成狀態(tài)?。?/p>

notify

支付回調(diào)可以通過(guò)IPN或者webhooks,基本和國(guó)內(nèi)支付沒(méi)有什么區(qū)別,唯一區(qū)別是paypal通知沒(méi)有加密,收到回調(diào)需要服務(wù)端主動(dòng)跟paypal確認(rèn)信息是否正確

相關(guān)鏈接

PayPal Checkout
PayPal integrate doc
PayPal SDK quickstart
point-events

到此這篇關(guān)于Paypal支付不完全指北的文章就介紹到這了,更多相關(guān)Paypal支付內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論