PayPal SDK Cordova/Phonegap Plugin
Отказ от ответственности
Цель этого плагина — сделать его управляемым сообществом. Мы создали первоначальную версию плагина, чтобы показать, насколько просто использовать наши нативные SDK (iOS и Android) на платформах Cordova/PhoneGap.
По мере добавления функций в mSDK мы будем рады рассмотреть и объединить любые запросы на включение этих функций в плагин.
Обновление с более ранних версий < 3.0.0
Пожалуйста, удалите ваши локальные копии нативных SDK, теперь плагин включает дистрибутивы SDK как часть исходного кода, чтобы упростить интеграцию и поддержание паритета версий.
Установка
Плагин PayPal SDK для Cordova/Phonegap добавляет поддержку PayPal SDK на платформы iOS и Android. Он использует библиотеки нативного мобильного SDK PayPal, которые вы также должны загрузить. Менеджер плагинов Cordova настроит все необходимые возможности/фреймворки для проекта. Единственное, что вам нужно сделать, это добавить необходимые файлы, как описано ниже.
$ cordova create MyShop com.mycompany.myshop "MyShop"
$ cd MyShop
# используя репозиторий Cordova (большое спасибо @Ramneekhanda за помощь в этом)
$ cordova plugin add com.paypal.cordova.mobilesdk
# или вы также можете установить напрямую из github
#$ cordova plugin add https://github.com/paypal/PayPal-Cordova-Plugin
$ cordova platform add ios
$ cordova platform add android
# необязательно для console.log и т. д.
$ cordova plugin add org.apache.cordova.console
cordova build
, чтобы собрать проекты для всех платформ.Phonegap Build
Если вы используете Phonegap Build, просто добавьте <gap:plugin name="com.paypal.cordova.mobilesdk" source="npm" />
в свой config.xml. Чтобы указать конкретную версию, используйте <gap:plugin name="com.paypal.cordova.mobilesdk" version="3.1.8" />
.
Для получения дополнительной информации проверьте http://docs.build.phonegap.com/en_US/configuring_plugins.md.html#Plugins.
Интеграция вашего приложения
Плагин PayPal SDK Cordova/Phonegap добавляет в ваш проект 2 файла JavaScript.
cdv-plugin-paypal-mobile-sdk.js
: оболочка вокруг нативного SDK. Объект PayPalMobile
сразу доступен для использования в ваших файлах .js
. Вам НЕ нужно ссылаться на него в index.html.paypal-mobile-js-helper.js
: файл-помощник, который определяет классы PayPalPayment
, PayPalPaymentDetails
и PayPalConfiguration
для использования с PayPalMobile
. <script type="text/javascript" src="js/paypal-mobile-js-helper.js"></script>
в файл MyShop/www/index.html
, после импорта cordova.js
.
Документация
cdv-plugin-paypal-mobile-sdk.js
и paypal-mobile-js-helper.js
для получения подробной информации и доступных функций.Базовый пример приложения
Полный пример кода можно посмотреть здесь https://github.com/romk1n/MyCordovaShop.
В MyShop/www/index.html
добавьте следующее после <p class="event received">Device is Ready</p>
:
<button id="buyNowBtn"> Buy Now !</button>
<button id="buyInFutureBtn"> Pay in Future !</button>
<button id="profileSharingBtn"> Profile Sharing !</button>
Замените MyShop/www/js/index.js
следующим кодом:
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for */ Дополнительная информация
Относительно авторских прав. ASF лицензирует этот файл вам в соответствии с Apache License, Version 2.0 («Лицензия»); вы не можете использовать этот файл иначе, чем в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
var app = { // Application Constructor initialize: function() { this.bindEvents(); }, // Bind Event Listeners // // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); }, // deviceready Event Handler // // The scope of 'this' is the event. In order to call the 'receivedEvent' // function, we must explicity call 'app.receivedEvent(...);' onDeviceReady: function() { app.receivedEvent('deviceready'); }, // Update DOM on a Received Event receivedEvent: function(id) { var parentElement = document.getElementById(id); var listeningElement = parentElement.querySelector('.listening'); var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
console.log('Received Event: ' + id);
// start to initialize PayPalMobile library
app.initPaymentUI();
},
initPaymentUI: function() {
var clientIDs = {
"PayPalEnvironmentProduction": "YOUR_PRODUCTION_CLIENT_ID",
"PayPalEnvironmentSandbox": "YOUR_SANDBOX_CLIENT_ID"
};
PayPalMobile.init(clientIDs, app.onPayPalMobileInit);
},
onSuccesfulPayment: function(payment) {
console.log("payment success: " + JSON.stringify(payment, null, 4));
},
onAuthorizationCallback: function(authorization) {
console.log("authorization: " + JSON.stringify(authorization, null, 4));
},
createPayment: function() {
// for simplicity use predefined amount
// optional payment details for more information check [helper js file](https://github.com/paypal/PayPal-Cordova-Plugin/blob/master/www/paypal-mobile-js-helper.js)
var paymentDetails = new PayPalPaymentDetails("50.00", "0.00", "0.00");
var payment = new PayPalPayment("50.00", "USD", "Awesome Sauce", "Sale", paymentDetails);
return payment;
},
configuration: function() {
// for more options see `paypal-mobile-js-helper.js`
var config = new PayPalConfiguration({merchantName: "My test shop", merchantPrivacyPolicyURL: "https://mytestshop.com/policy", merchantUserAgreementURL: "https://mytestshop.com/agreement"});
return config;
},
onPrepareRender: function() {
// buttons defined in index.html
// <button id="buyNowBtn"> Buy Now !</button>
// <button id="buyInFutureBtn"> Pay in Future !</button>
// <button id="profileSharingBtn"> ProfileSharing !</button>
var buyNowBtn = document.getElementById("buyNowBtn");
var buyInFutureBtn = document.getElementById("buyInFutureBtn");
var profileSharingBtn = document.getElementById("profileSharingBtn");
buyNowBtn.onclick = function(e) {
// single payment
PayPalMobile.renderSinglePaymentUI(app.createPayment(), app.onSuccesfulPayment, app.onUserCanceled);
};
buyInFutureBtn.onclick = function(e) {
... }
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )