In diesem Tutorial zeige ich Ihnen, wie Sie Zahlungen mit der PayPal REST API und C# durchführen. Alle von ihnen bereitgestellten Bibliotheken für verschiedene Sprachen wie Ruby, Node.js, Python, PHP usw. sind sehr ähnlich, sodass alle hier aufgeführten Konzepte auf alle Bibliotheken anwendbar sind.
Projekteinstellungen
Zuerst habe ich ein MVC-Projekt in Visual Studio 2015 erstellt: Datei > Neu > Projekt und ASP.NET-Anwendung ausgewählt.
Wählen Sie die Vorlage „ASP.NET 5-Webanwendung“ aus, die das neue MVC 6 verwendet. Es ähnelt MVC 5, wenn Sie damit vertraut sind.
Wie Sie auf dem Foto unten sehen können, habe ich der Lösung einige Dateien und Ordner hinzugefügt. Die wichtigsten zwei Dinge, die es zu beachten gilt, sind:
In den Referenzen
habe ich das Ziel DNX Core 5.0 entfernt, wodurch wir dieses Projekt unter Mac OS X oder Linux ausführen können, aber die PayPal-Bibliotheken, die wir benötigen, wurden noch nicht aktualisiert. Ich habe den Ordner „Services“ hinzugefügt, in dem ich die Logik für die PayPal-Aufrufe einkapseln werde, damit wir die Steuerung einfach und klar halten können.
Verwenden Sie NuGet, um das PayPal SDK zu installieren.
Klicken Sie mit der rechten Maustaste auf den
Lösungsnamen und wählen Sie NuGet-Pakete verwalten, suchen Sie dann nach „PayPal“ und installieren Sie es.
PayPal-App erstellen
Um unsere Anwendung mit PayPal zu integrieren, müssen wir zu PayPal Developers navigieren und unter
REST-API-Anwendungen
auf Anwendung erstellen klicken.
Benennen Sie Ihre App und wählen Sie ein Sandbox-Entwicklerkonto aus, das Sie mit der App verknüpfen möchten. Zu Testzwecken können wir zu http://sandbox.paypal.com navigieren und uns mit den Sandbox-Anmeldedaten anmelden, um ein Test-PayPal-Konto und Transaktionen anzuzeigen.
Nachdem Sie auf
App erstellen
geklickt haben, sehen wir den Bestätigungsbildschirm mit der Kunden-ID und dem geheimen Token.
Kopieren Sie die clientId und das clientSecret-Token nach
, wie im Screenshot unten gezeigt:
appsettings.json
Testzahlung
PayPal bietet eine Sandbox-Umgebung zum Testen. Von dort aus können Sie Testkäufer- und Verkäuferkonten erstellen. Nach der Anmeldung verfügen Sie über ein Unternehmenskonto in der Sandbox, das mit Ihrem Entwicklerkonto verknüpft ist.
Um ein neues Testkonto zu erstellen, melden Sie sich auf der Entwickler-Website an, klicken Sie dann auf die Registerkarte
Systemsteuerung
und navigieren Sie zu Sandbox > Konten. Die Liste der Testkonten (falls verfügbar) können Sie hier einsehen:
Wenn Sie noch kein Testkonto erstellt haben, klicken Sie oben rechts auf
Konto erstellen
, um mindestens ein persönliches Testkonto und ein Geschäftskonto zu erstellen.
Nachdem Sie ein Testkonto erstellt haben, können Sie sich über www.sandbox.paypal.com mit der Test-E-Mail-Adresse und dem Passwort anmelden, die Sie jedem Konto im vorherigen Formular zugewiesen haben. Dies ist nützlich, um zu testen, ob Gelder auf Ihr Test-Geschäftskonto überwiesen werden, wenn Sie einen Kauf über Ihr persönliches Testkonto tätigen. Jetzt können Sie mit der Integration mit PayPal beginnen und testen, ob Gelder von einem Konto auf ein anderes übertragen werden.
Einzelne PayPal-Zahlung
PayPal bietet verschiedene Zahlungsmethoden an. Sie können direkte Kreditkartenzahlungen nutzen, was bedeutet, dass Ihre Kunden weder die PayPal-Anmeldeseite noch die PayPal-Zusammenfassung sehen können – alles geschieht auf Ihrer Website. Dazu müssen Sie PCI-kompatibel sein und ich empfehle die Verwendung von Stripe, da Sie nur SSL über deren JavaScript-Bibliothek benötigen. Um per PayPal zu bezahlen, gibt es hingegen drei Schritte:
Geben Sie Zahlungsinformationen an, um eine Zahlung zu erstellen.
Lassen Sie die Zahlung genehmigen, leiten Sie Ihre Kunden an PayPal weiter, um die Transaktion zu genehmigen.
Nachdem PayPal Ihren Kunden zurück auf Ihre Website weitergeleitet hat, Führen Sie die Zahlung aus, um das Geld zu erhalten.
Im Ordner Services meines MVC-Projekts habe ich die PayPalPaymentService-Klasse erstellt und darin die folgenden Methoden hinzugefügt:
public static Payment CreatePayment(string baseUrl, string intent)
{
// ### Api Context
// Pass in a `APIContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
var apiContext = PayPalConfiguration.GetAPIContext();
// Payment Resource
var payment = new Payment()
{
intent = intent, // `sale` or `authorize`
payer = new Payer() { payment_method = "paypal" },
transactions = GetTransactionsList(),
redirect_urls = GetReturnUrls(baseUrl, intent)
};
// Create a payment using a valid APIContext
var createdPayment = payment.Create(apiContext);
return createdPayment;
}
private static List<Transaction> GetTransactionsList()
{
// A transaction defines the contract of a payment
// what is the payment for and who is fulfilling it.
var transactionList = new List<Transaction>();
// The Payment creation API requires a list of Transaction;
// add the created Transaction to a List
transactionList.Add(new Transaction()
{
description = "Transaction description.",
invoice_number = GetRandomInvoiceNumber(),
amount = new Amount()
{
currency = "USD",
total = "100.00", // Total must be equal to sum of shipping, tax and subtotal.
details = new Details() // Details: Let's you specify details of a payment amount.
{
tax = "15",
shipping = "10",
subtotal = "75"
}
},
item_list = new ItemList()
{
items = new List<Item>()
{
new Item()
{
name = "Item Name",
currency = "USD",
price = "15",
quantity = "5",
sku = "sku"
}
}
}
});
return transactionList;
}
private static RedirectUrls GetReturnUrls(string baseUrl, string intent)
{
var returnUrl = intent == "sale" ? "/Home/PaymentSuccessful" : "/Home/AuthorizeSuccessful";
// Redirect URLS
// These URLs will determine how the user is redirected from PayPal
// once they have either approved or canceled the payment.
return new RedirectUrls()
{
cancel_url = baseUrl + "/Home/PaymentCancelled",
return_url = baseUrl + returnUrl
};
}
public static Payment ExecutePayment(string paymentId, string payerId)
{
// ### Api Context
// Pass in a `APIContext` object to authenticate
// the call and to send a unique request id
// (that ensures idempotency). The SDK generates
// a request id if you do not pass one explicitly.
var apiContext = PayPalConfiguration.GetAPIContext();
var paymentExecution = new PaymentExecution() { payer_id = payerId };
var payment = new Payment() { id = paymentId };
// Execute the payment.
var executedPayment = payment.Execute(apiContext, paymentExecution);
return executedPayment;
}
Nach dem Login kopieren
Einige Parameter werden in diesem Aufruf übergeben:
Intent: Drei mögliche Werte: „Sales“ für sofortige Zahlung, „Authorize“ für Autorisierung zur späteren Erfassung der Zahlung oder „Order“ für die Erstellung einer Bestellung. Wenn Sie ermächtigt sind, eine Zahlung später abzubuchen, haben Sie eine dreitägige Garantie, können aber versuchen, die Zahlung bis zu 29 Tage später einzuziehen.
Zahler: Die Geldquelle für diese Zahlung, die verwendete Zahlungsmethode – PayPal-Wallet-Zahlung, Banklastschrift oder direkte Kreditkarte.
Transaktion: Wird zur Angabe des Zahlungsbetrags und optional zur Angabe der zu zahlenden Artikel verwendet. Bei Bedarf können Sie auch Zwischensummen, Versandkosten und Steuern angeben.
Weiterleitungs-URL: Geben Sie die URL an, an die PayPal Ihre Kunden nach einer Transaktion weiterleitet, damit Sie die Datenbank aktualisieren und eine Bestätigungsmeldung anzeigen können.
Die bisherige Funktionalität kann vom Controller wie unten gezeigt genutzt werden:
public IActionResult CreatePayment()
{
var payment = PayPalPaymentService.CreatePayment(GetBaseUrl(), "sale");
return Redirect(payment.GetApprovalUrl());
}
public IActionResult PaymentCancelled()
{
// TODO: Handle cancelled payment
return RedirectToAction("Error");
}
public IActionResult PaymentSuccessful(string paymentId, string token, string PayerID)
{
// Execute Payment
var payment = PayPalPaymentService.ExecutePayment(paymentId, PayerID);
return View();
}
Nach dem Login kopieren
Wie Sie sehen, habe ich drei Aktionen erstellt:
Zahlung erstellen: Dies ist die Aktion, die die Zahlung auslöst. Es ruft PayPal auf, um die Zahlung zu erstellen, und leitet den Benutzer dann an PayPal weiter, um die Transaktion zu genehmigen.
Zahlung erfolgreich: So leitet PayPal den Kunden nach erfolgreicher Zahlung zurück. An diesem Punkt können wir die Zahlung ausführen und das Geld auf unser Händlerkonto überweisen.
PaymentCancelled: Leiten Sie den Benutzer von PayPal zu dieser Aktion weiter, wenn er den Genehmigungsprozess abbricht. An dieser Stelle möchten Sie dem Kunden möglicherweise die Möglichkeit geben, es erneut zu versuchen oder Sie zu kontaktieren.
Autorisieren Sie die Zahlung, um sie später zu erhalten
Dieses Szenario ist dem vorherigen Fall sehr ähnlich. Sie können diese Methode verwenden, wenn Sie versuchen, ein Produkt vorzubestellen, das noch nicht verfügbar ist. Die Schritte, um diese Zahlung zu erhalten, sind:
Zahlung autorisieren: Der „Intent“-Parameter dieses Aufrufs sollte „Autorisieren“ lauten.
Bezahlt werden: Denken Sie daran, dass die Autorisierung für bis zu 3 Tage garantiert ist. Sie können jedoch versuchen, bis zu 29 Tage lang bezahlt zu werden.
Um diese Zahlungsart zu implementieren, habe ich gerade eine neue Methode in der PayPalPaymentService-Klasse hinzugefügt, um die Zahlung zu erfassen:
public static Capture CapturePayment(string paymentId)
{
var apiContext = PayPalConfiguration.GetAPIContext();
var payment = Payment.Get(apiContext, paymentId);
var auth = payment.transactions[0].related_resources[0].authorization;
// Specify an amount to capture. By setting 'is_final_capture' to true, all remaining funds held by the authorization will be released from the funding instrument.
var capture = new Capture()
{
amount = new Amount()
{
currency = "USD",
total = "4.54"
},
is_final_capture = true
};
// Capture an authorized payment by POSTing to
// URI v1/payments/authorization/{authorization_id}/capture
var responseCapture = auth.Capture(apiContext, capture);
return responseCapture;
}
Nach dem Login kopieren
Dann habe ich in HomeController zwei neue Aktionen hinzugefügt, um diese Zahlungsart anzuzeigen:
public IActionResult AuthorizePayment()
{
var payment = PayPalPaymentService.CreatePayment(GetBaseUrl(), "authorize");
return Redirect(payment.GetApprovalUrl());
}
public IActionResult AuthorizeSuccessful(string paymentId, string token, string PayerID)
{
// Capture Payment
var capture = PayPalPaymentService.CapturePayment(paymentId);
return View();
}
Nach dem Login kopieren
AuthorizePayment ist die Aktion, die die Zahlung auslöst. Sie ist der vorherigen Funktion „CreatePayment“ sehr ähnlich, aber in diesem Fall übergeben wir „authorize“ als Intent-Parameter.
AuthorizeSuccessful ist die Aktion, die Ihre Kunden nach erfolgreicher Genehmigung einer PayPal-Zahlung weiterleitet. Zu diesem Zeitpunkt erfasse ich die Zahlung, aber Sie können die paymentId in der Datenbank speichern und die Zahlung bei Bedarf erfassen.
In diesen Codebeispielen habe ich der Einfachheit halber die Werte der Zahlungsvariablen fest codiert. In Ihrer realen Anwendung würden Sie sie wahrscheinlich in eine Methode einbinden, die alle diese Werte als Variablen akzeptiert, sodass alles dynamisch festgelegt und wiederverwendet werden kann.
Abonnieren
In PayPal wird dies als „Abrechnungsplan“ bezeichnet. Sie können einen wiederkehrenden Zahlungsplan erstellen und Ihren Kunden einen Abrechnungsplan abonnieren, indem Sie eine Abrechnungsvereinbarung erstellen. Mit der PayPal-REST-API können Sie Abrechnungspläne erstellen, aktualisieren oder löschen; dies können Sie verwenden, wenn Sie ein Admin-Panel erstellen möchten, um diese Dinge für Ihr Unternehmen zu verwalten.
Die Schritte zum Erstellen einer wiederkehrenden Gebühr für einen Kunden sind wie folgt:
Erstellen Sie einen Abrechnungsplan und aktivieren Sie ihn. Nachdem Sie einen Abrechnungsplan erstellt haben, hat dieser den Status „Erstellt“. Es muss durch Ausgabe einer PATCH-Anfrage aktiviert werden.
Vergleichsvereinbarung erstellen und Ausführen: Die Antwort auf den Aufruf „Vergleichsvereinbarung erstellen“ enthält Links zu „application_url“ und „execute_url“. Wir müssen die Genehmigung der Abrechnungsvereinbarung einholen und dann die Abrechnungsvereinbarung ausführen.
Abrechnungsplan
Erstellen Sie einen Abrechnungsplan
Erstellen Sie Abrechnungspläne, die Abrechnungszyklen definieren. Dies ist eine Zusammenfassung der Parameter, die wir beim Erstellen des Plans übergeben müssen.
// Define the plan and attach the payment definitions and merchant preferences.
// More Information: https://developer.paypal.com/webapps/developer/docs/api/#create-a-plan
var billingPlan = new Plan
{
name = "Tuts+ Plus",
description = "Monthly plan for courses.",
type = "fixed",
// Define the merchant preferences.
// More Information: https://developer.paypal.com/webapps/developer/docs/api/#merchantpreferences-object
merchant_preferences = new MerchantPreferences()
{
setup_fee = GetCurrency("0"), // $0
return_url = "returnURL", // Retrieve from config
cancel_url = "cancelURL", // Retrieve from config
auto_bill_amount = "YES",
initial_fail_amount_action = "CONTINUE",
max_fail_attempts = "0"
},
payment_definitions = new List<PaymentDefinition>
{
// Define a trial plan that will only charge $9.99 for the first
// month. After that, the standard plan will take over for the
// remaining 11 months of the year.
new PaymentDefinition()
{
name = "Trial Plan",
type = "TRIAL",
frequency = "MONTH",
frequency_interval = "1",
amount = GetCurrency("0"), // Free for the 1st month
cycles = "1",
charge_models = new List<ChargeModel>
{
new ChargeModel()
{
type = "TAX",
amount = GetCurrency("1.65") // If we need to charge Tax
},
new ChargeModel()
{
type = "SHIPPING",
amount = GetCurrency("9.99") // If we need to charge for Shipping
}
}
},
// Define the standard payment plan. It will represent a monthly
// plan for $19.99 USD that charges once month for 11 months.
new PaymentDefinition
{
name = "Standard Plan",
type = "REGULAR",
frequency = "MONTH",
frequency_interval = "1",
amount = GetCurrency("15.00"),
// > NOTE: For `IFNINITE` type plans, `cycles` should be 0 for a `REGULAR` `PaymentDefinition` object.
cycles = "11",
charge_models = new List<ChargeModel>
{
new ChargeModel
{
type = "TAX",
amount = GetCurrency("2.47")
},
new ChargeModel()
{
type = "SHIPPING",
amount = GetCurrency("9.99")
}
}
}
}
};
// Get PayPal Config
var apiContext = PayPalConfiguration.GetAPIContext();
// Create Plan
plan.Create(apiContext);
Nach dem Login kopieren
新创建的结算计划处于 CREATED 状态。将其激活为“活动”状态,以便您的客户可以订阅该计划。要激活该计划,我们需要发出 PATCH 请求:
// Activate the plan
var patchRequest = new PatchRequest()
{
new Patch()
{
op = "replace",
path = "/",
value = new Plan() { state = "ACTIVE" }
}
};
plan.Update(apiContext, patchRequest);
Nach dem Login kopieren
如您所见,PayPal 库是其 REST API 的直接包装器,这很好,但与 Stripe 等其他 API 相比,该 API 也非常复杂。因此,将所有 PayPal 通信包装在对象中,为我们的应用程序提供更清晰、更简单的 API,这确实是一个不错的选择。在这里您可以看到封装在多个带有参数的函数中的代码的样子:
public static Plan CreatePlanObject(string planName, string planDescription, string returnUrl, string cancelUrl,
string frequency, int frequencyInterval, decimal planPrice,
decimal shippingAmount = 0, decimal taxPercentage = 0, bool trial = false, int trialLength = 0, decimal trialPrice = 0)
{
// Define the plan and attach the payment definitions and merchant preferences.
// More Information: https://developer.paypal.com/docs/rest/api/payments.billing-plans/
return new Plan
{
name = planName,
description = planDescription,
type = PlanType.Fixed,
// Define the merchant preferences.
// More Information: https://developer.paypal.com/webapps/developer/docs/api/#merchantpreferences-object
merchant_preferences = new MerchantPreferences()
{
setup_fee = GetCurrency("1"),
return_url = returnUrl,
cancel_url = cancelUrl,
auto_bill_amount = "YES",
initial_fail_amount_action = "CONTINUE",
max_fail_attempts = "0"
},
payment_definitions = GetPaymentDefinitions(trial, trialLength, trialPrice, frequency, frequencyInterval, planPrice, shippingAmount, taxPercentage)
};
}
private static List<PaymentDefinition> GetPaymentDefinitions(bool trial, int trialLength, decimal trialPrice,
string frequency, int frequencyInterval, decimal planPrice, decimal shippingAmount, decimal taxPercentage)
{
var paymentDefinitions = new List<PaymentDefinition>();
if (trial)
{
// Define a trial plan that will charge 'trialPrice' for 'trialLength'
// After that, the standard plan will take over.
paymentDefinitions.Add(
new PaymentDefinition()
{
name = "Trial",
type = "TRIAL",
frequency = frequency,
frequency_interval = frequencyInterval.ToString(),
amount = GetCurrency(trialPrice.ToString()),
cycles = trialLength.ToString(),
charge_models = GetChargeModels(trialPrice, shippingAmount, taxPercentage)
});
}
// Define the standard payment plan. It will represent a 'frequency' (monthly, etc)
// plan for 'planPrice' that charges 'planPrice' (once a month) for #cycles.
var regularPayment = new PaymentDefinition
{
name = "Standard Plan",
type = "REGULAR",
frequency = frequency,
frequency_interval = frequencyInterval.ToString(),
amount = GetCurrency(planPrice.ToString()),
// > NOTE: For `IFNINITE` type plans, `cycles` should be 0 for a `REGULAR` `PaymentDefinition` object.
cycles = "11",
charge_models = GetChargeModels(trialPrice, shippingAmount, taxPercentage)
};
paymentDefinitions.Add(regularPayment);
return paymentDefinitions;
}
private static List<ChargeModel> GetChargeModels(decimal planPrice, decimal shippingAmount, decimal taxPercentage)
{
// Create the Billing Plan
var chargeModels = new List<ChargeModel>();
if (shippingAmount > 0)
{
chargeModels.Add(new ChargeModel()
{
type = "SHIPPING",
amount = GetCurrency(shippingAmount.ToString())
});
}
if (taxPercentage > 0)
{
chargeModels.Add(new ChargeModel()
{
type = "TAX",
amount = GetCurrency(String.Format("{0:f2}", planPrice * taxPercentage / 100))
});
}
return chargeModels;
}
Nach dem Login kopieren
更新结算计划
您可以通过提出“PATCH”请求来更新现有结算方案的信息。这是一个包装该调用的函数:
public static void UpdateBillingPlan(string planId, string path, object value)
{
// PayPal Authentication tokens
var apiContext = PayPalConfiguration.GetAPIContext();
// Retrieve Plan
var plan = Plan.Get(apiContext, planId);
// Activate the plan
var patchRequest = new PatchRequest()
{
new Patch()
{
op = "replace",
path = path,
value = value
}
};
plan.Update(apiContext, patchRequest);
}
Nach dem Login kopieren
要更新计费计划描述,我们可以调用此函数并传递正确的参数:
UpdateBillingPlan(
planId: "P-5FY40070P6526045UHFWUVEI",
path: "/",
value: new Plan { description = "new description" });
public static void ExecuteBillingAgreement(string token)
{
// PayPal Authentication tokens
var apiContext = PayPalConfiguration.GetAPIContext();
var agreement = new Agreement() { token = token };
var executedAgreement = agreement.Execute(apiContext);
}
Nach dem Login kopieren
暂停计费协议
使用此方法暂停协议:
public static void SuspendBillingAgreement(string agreementId)
{
var apiContext = PayPalConfiguration.GetAPIContext();
var agreement = new Agreement() { id = agreementId };
agreement.Suspend(apiContext, new AgreementStateDescriptor()
{ note = "Suspending the agreement" });
}
Nach dem Login kopieren
重新激活计费协议
这个与上一个非常相似:
public static void ReactivateBillingAgreement(string agreementId)
{
var apiContext = PayPalConfiguration.GetAPIContext();
var agreement = new Agreement() { id = agreementId };
agreement.ReActivate(apiContext, new AgreementStateDescriptor()
{ note = "Reactivating the agreement" });
}
Nach dem Login kopieren
取消计费协议
使用此功能取消计划:
public static void CancelBillingAgreement(string agreementId)
{
var apiContext = PayPalConfiguration.GetAPIContext();
var agreement = new Agreement() { id = agreementId };
agreement.Cancel(apiContext, new AgreementStateDescriptor()
{ note = "Cancelling the agreement" });
}
这是人们用来与 PayPal 集成的最常用功能的概述。他们的 API 比本文中解释的集成方法要大得多 - 您还可以发放退款和部分退款,并且他们针对本文涵盖的示例中的边缘情况提供了许多不同的选项。如果您有兴趣获得有关任何特定集成的更多详细信息,请在评论中留下建议。
Das obige ist der detaillierte Inhalt vonTiefer Einblick: PayPal-Integration Teil 2: PayPal REST API. 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
Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ
In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten.
Ersetzen Sie die Zeichenfolge im JavaScript -Code
Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode:
str = str.replace ("find", "ersetzen");
Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu::
STR = Str.Replace (/fi
Hier sind Sie also bereit, alles über dieses Ding namens Ajax zu lernen. Aber was genau ist das? Der Begriff AJAX bezieht sich auf eine lose Gruppierung von Technologien, mit denen dynamische, interaktive Webinhalte erstellt werden.
Der Begriff Ajax, ursprünglich von Jesse J geprägt
10 Fun JQuery Game -Plugins, um Ihre Website attraktiver zu machen und die Stickinität der Benutzer zu verbessern! Während Flash immer noch die beste Software für die Entwicklung von lässigen Webspielen ist, kann JQuery auch überraschende Effekte erzielen und zwar nicht mit reinen Action -Flash -Spielen vergleichbar sind, aber in einigen Fällen können Sie auch einen unerwarteten Spaß in Ihrem Browser haben.
JQuery Tic Toe Game
Die "Hello World" der Game -Programmierung hat jetzt eine Jquery -Version. Quellcode
JQuery Crazy Word Kompositionsspiel
Dies ist ein Spiel mit der Füllung, und es kann einige seltsame Ergebnisse erzielen, da das Wort nicht kennt. Quellcode
JQuery Mine Sweeping Game
In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.
Dieses Tutorial zeigt, wie ein faszinierender Parallaxen -Hintergrundeffekt mit JQuery erstellt wird. Wir werden ein Header -Banner mit geschichteten Bildern bauen, die eine atemberaubende visuelle Tiefe erzeugen. Das aktualisierte Plugin funktioniert mit JQuery 1.6.4 und später.
Laden Sie die herunter
In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.
Matter.js ist eine in JavaScript geschriebene 2D -Motorhilfe -Physik -Engine. Diese Bibliothek kann Ihnen helfen, die 2D -Physik in Ihrem Browser problemlos zu simulieren. Es bietet viele Merkmale, wie die Möglichkeit, starre Körper zu erstellen und physikalische Eigenschaften wie Masse, Fläche oder Dichte zuzuweisen. Sie können auch verschiedene Arten von Kollisionen und Kräften simulieren, wie z. B. die Schwerkraft Reibung.
Matter.js unterstützt alle Mainstream -Browser. Darüber hinaus ist es für mobile Geräte geeignet, da es Berührungen erkennt und reagiert. Alle diese Funktionen machen es Ihre Zeit wert, zu lernen, wie man die Engine benutzt. In diesem Tutorial werde ich die Grundlagen dieser Bibliothek, einschließlich ihrer Installation und Nutzung, behandeln und a bereitstellen
Dieser Artikel zeigt, wie Sie den Inhalt eines DIV automatisch alle 5 Sekunden mit JQuery und Ajax aktualisieren können. Das Beispiel holt und zeigt die neuesten Blog -Beiträge aus einem RSS -Feed zusammen mit dem letzten Aktualisierungstempel. Ein Ladebild ist Optiona