Heim Backend-Entwicklung PHP-Tutorial Ausführliche Erklärung des PHP-Andockens mit PayPal-Zahlung

Ausführliche Erklärung des PHP-Andockens mit PayPal-Zahlung

Mar 02, 2021 pm 03:34 PM
php

Umgebungsvorbereitung

  • Registrieren Sie ein PayPal-Konto.
  • Registrieren Sie ein PayPal-Entwicklerkonto.
  • Erstellen Sie ein PayPal-Sandbox-Testkonto.
  • Erstellen Sie eine PayPal-Anwendung
  • Zahlungserfolg umsetzen Rückruf
  • Rückerstattung realisieren
  • Weitere API-Code-Vorlagen
  • Registrieren Sie ein PayPal-Konto

www.paypal.com Registrieren Sie ein HändlerkontoWählen Sie „Händlerbenutzer erstellen“ und geben Sie die erforderlichen Informationen ein , und die Registrierung ist abgeschlossen E-Mail-Aktivierung

  • Registrieren Sie ein PayPal-Entwicklerkonto

developer.paypal.com Verwenden Sie das im vorherigen Schritt registrierte Konto, um sich anzumeldenKlicken Sie zum Erstellen auf Konten in der linken Navigationsleiste zwei Sandbox-Konten und ein persönliches Konto werden für die Zahlung verwendet, und ein Händlerkonto (Geschäftskonto) wird standardmäßig für die Erstellung zweier Konten verwendet. Sie können diese nach der Erstellung des Kontos selbst erstellen. Denken Sie daran, für spätere Tests einen Saldo auf das Girokonto hinzuzufügen.

  • Verwenden Sie das soeben erstellte Testkonto, um sich auf der Sandbox-Testseite anzumelden, überprüfen Sie den Betrag und die Transaktionsinformationen www.sandbox.paypal.com

  • Ausführliche Erklärung des PHP-Andockens mit PayPal-Zahlung
  • Erstellen Sie eine Sandbox-Anwendungs-APP

Ein Konto wird standardmäßig als Standardanwendung erstellt. Klicken Sie zum Anzeigen, um die Client-ID und das Geheimnis abzurufen. Sie werden beim nächsten Schnittstellenaufruf verwendet (bitte erstellen Sie eine Live-Anwendung neu, wenn Sie online gehen). Laden Sie SDK

    i herunter, verwenden Sie das Laravel -Framework und verwenden Sie den Composer, um das PayPal -Paket herunterzuladen.

  • Ausführliche Erklärung des PHP-Andockens mit PayPal-Zahlung

Das Folgende ist ein Rückrufcode-Snippet für eine erfolgreiche Zahlung, Pseudocode-Code

function createPayPal(){
      $shippingPrice = 2;
      $taxPrice = 0;
      $subTotal = 26;
      $item1 = new PayPal\Api\Item();
      $item1->setName("产品2")->setCurrency("USD")->setQuantity(1)->setPrice(10);
      $item2 = new PayPal\Api\Item();
      $item2->setName("产品1")->setCurrency("USD")->setQuantity(2)->setPrice(8);

      $itemList = new PayPal\Api\ItemList();
      $itemList->addItems([$item1,$item2]);

      // Set payment details
      $details = new PayPal\Api\Details();
      $details->setShipping($shippingPrice)->setTax($taxPrice)->setSubtotal($subTotal);

      // Set payment amount
      //注意,此处的subtotal,必须是产品数*产品价格,所有值必须是正确的,否则会报错
      $total = $shippingPrice + $subTotal + $taxPrice;
      $amount = new PayPal\Api\Amount();
      $amount->setCurrency("USD")->setTotal($total)->setDetails($details);

      // Set transaction object
      $transaction = new PayPal\Api\Transaction();
      $transaction->setAmount($amount)->setItemList($itemList)->setDescription("这是交易描述")
          ->setInvoiceNumber(uniqid());//setInvoiceNumber为支付唯一标识符,在使用时建议改成订单号

      $payer = new PayPal\Api\Payer();
      $payer->setPaymentMethod('paypal');//["credit_card", "paypal"]
      $redirectUrls = new PayPal\Api\RedirectUrls();
      $redirectUrl = "http://test.com/redirect/success";//支付成功跳转的回调
      $cancelUrl = "http://test.com/redirect/cancel";//取消支付的回调
      $redirectUrls->setReturnUrl($redirectUrl)->setCancelUrl($cancelUrl);

      // Create the full payment object
      $payment = new PayPal\Api\Payment();
      $payment->setIntent("sale")->setPayer($payer)->setRedirectUrls($redirectUrls)->addTransaction($transaction);

      try {
          $clientId = "xxxxxx";//上面应用的clientId和secret
          $secret = "XXXXXX";
          $oAuth = new \PayPal\Auth\OAuthTokenCredential($clientId, $secret);
          $apiContext =  new \PayPal\Rest\ApiContext($oAuth);
          if(env('APP_DEBUG') === false ){
              $apiContext->setConfig(['mode' => 'live']);//设置线上环境,默认是sandbox
          }
          $payment->create($apiContext);
          $approvalUrl = $payment->getApprovalLink();
          dd($approvalUrl);//这个是请求支付的链接,在浏览器中请求此链接就会跳转到支付页面
      } catch (\Exception $e) {
          dd($e->getMessage());//错误提示
      }
  }
Nach dem Login kopieren

  • Rückerstattung
  • composer require paypal/rest-api-sdk-php
Die Rückerstattung muss eine erfolgreiche Einzahlungsscheinnummer haben

Eine Belegnummer kann für mehrere Rückerstattungen verwendet werden

  • Nachdem die Rückerstattung erfolgreich war, wird sie nicht im Transaktionsdatensatz des Kontos angezeigt. Melden Sie sich beim Testen bitte beim Testkonto an und notieren Sie die Änderungen im Kontostand selbst, um festzustellen, ob die Rückerstattung erfolgt Die Rückerstattung ist erfolgreich

    Ausführliche Erklärung des PHP-Andockens mit PayPal-ZahlungDas Guthaben des Händlerkontos wird reduziert und die Bearbeitungsgebühr erhöht (die Bearbeitungsgebühr ist die Übergebühr der vorherigen Zahlung), das Guthaben des Benutzerkontos erhöht sich

    function payRedirect(Request $request)
      {
          $paymentID = $request->get('paymentId');
          $payerId = $request->get('PayerID');
    
          $clientId = "xxxxxx";//上面应用的clientId和secret
          $secret = "XXXXXX";
          $oAuth = new \PayPal\Auth\OAuthTokenCredential($clientId, $secret);
          $apiContext =  new \PayPal\Rest\ApiContext($oAuth);       
          if(env('APP_DEBUG') === false ){
              $apiContext->setConfig(['mode' => 'live']);//设置线上环境,默认是sandbox
          }
          $payment = \PayPal\Api\Payment::get($paymentID, $apiContext);
    
          $execute = new \PayPal\Api\PaymentExecution();
          $execute->setPayerId($payerId);
    
          try{
              $payment = $payment->execute($execute, $apiContext);//执行,从paypal获取支付结果
              $paymentState = $payment->getState();//Possible values: created, approved, failed.
              $invoiceNum = $payment->getTransactions()[0]->getInvoiceNumber();
              $payNum = $payment->getTransactions()[0]->getRelatedResources()[0]->getSale()->getId();//这是支付的流水单号,必须保存,在退款时会使用到
              $total = $payment->getTransactions()[0]->getRelatedResources()[0]->getSale()->getAmount()->getTotal();//支付总金额
              $transactionState = $payment->getTransactions()[0]->getRelatedResources()[0]->getSale()->getState();//Possible values: completed, partially_refunded, pending, refunded, denied.
    
              if($paymentState == 'approved' && $transactionState == 'completed'){
                  //处理成功的逻辑,例如:判断支付金额与订单金额,更新订单状态等
                  return "success";//返回成功标识
              }else{
                  //paypal回调错误,paypal状态不正确
                  return "error";//返回错误标识
              }
          }catch(\Exception $e){
              dd($e->getMessage());
          }
      }
    Nach dem Login kopieren
  • Weitere Beispiele für Schnittstellencodes

http://paypal.github.io/PayPal-PHP-SDK/sample/Empfohlen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung des PHP-Andockens mit PayPal-Zahlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

See all articles