Ausführliche Erklärung des PHP-Andockens mit PayPal-Zahlung
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
-
- 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.
-
Das Folgende ist ein Rückrufcode-Snippet für eine erfolgreiche Zahlung, Pseudocode-Codefunction 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());//错误提示
}
}
- Rückerstattung
composer require paypal/rest-api-sdk-php
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
Das 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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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.

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

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

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

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

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

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