javascript — (Другое) проблема интеграции Paypal Express API и взаимодействия с js и моделью «размещения заказа»

Я оригинальный полностью функциональный Javascript торговый код скопирован с основой модели вызова «Место заказа»;

define('models/PlaceOrder',['jquery', 'backbone'],
function($, Backbone) {
var PlaceOrderModel = Backbone.Model.extend({
url: SS.getAPIPageRoot()+'/place_order',
initialize: function(){
this.on("sync", this.onSync, this);
},
onSync: function(model){
if(model.has("payment_method") && model.has("payment_data")){
if(model.get("payment_method") === "paypal" && typeof model.get("payment_data").paypal_form != 'undefined'){
$('body').append(model.get("payment_data").paypal_form); //needs to be appending in the DOM for it to work for IE
$('#payPalSubmitForm').submit();
}else if(model.get("payment_method") === "none" && typeof model.get("payment_data").receipt_link != 'undefined'){
window.location.href = model.get("payment_data").receipt_link;
}
else if (model.get("payment_method") === "paypal_express_checkout" && typeof model.get("payment_data").express_url != 'undefined') {
window.location.href = model.get("payment_data").express_url;
} else {
model.trigger("error");
}
} else {
model.trigger("error");
}
}
});
return new PlaceOrderModel();
}
);

Некоторая часть SummaryView.js (сокращенная);

define('views/shop/summary/SummaryFooterView',['jquery', 'text!templates/shop/summary/footer.html', 'models/PlaceOrder', 'backbone', 'ss-formview', 'App', 'marionette', 'bootstrap-modal'],
function ($, template, placeOrderModel, Backbone, FormView, App) {
return Backbone.Marionette.ItemView.extend({
template: template,
model: shopModel,
events: {
'submit form': 'onPlacingOrder',
'click #terms-checkbox': 'onClickCheckbox',
'click button.close': 'onCloseAlert'
},
initialize: function(){
this.listenTo(shopModel, "change", this.render, this);
this.listenTo(placeOrderModel, "request", FormView.prototype.onRequest, this);
this.listenTo(placeOrderModel, "error", FormView.prototype.onModelError, this);
},

onClickCheckbox: function(e){
if(shopModel.get("place_order_enabled")){
if(this.$(e.currentTarget).prop("checked")){
this.$('button[type="submit"]').removeAttr("disabled").removeClass('disabled');
}else{
this.$('button[type="submit"]').attr("disabled", "disabled").addClass('disabled');
}
}
},
onPlacingOrder: function(e){
e.preventDefault();
placeOrderModel.save({});
},
onCloseAlert: function(e){

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

this.$('button[type="submit"]').html(function(){
return $(this).data("default");
});
}
});
});

Таким образом, неотъемлемой частью модели должны быть токены, возвращаемые Paypal (вызов API SetExpressCheckout?), Поскольку в нем есть информация для покупателей об общей сумме, адресе и т. Д .;

                    else if (model.get("payment_method") === "paypal_express_checkout" && typeof model.get("payment_data").express_url != 'undefined') {
window.location.href = model.get("payment_data").express_url;

И вернуть JSON;

{"payment_data":{"express_url":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_express-checkout&token=EC-22794774F9358041H&useraction=commit"},"payment_method":"paypal_express_checkout"}

Однако я не знаю, как эта модель «получит» или «поймает» значение токена от PayPal? В целом вся эта процедура вызова API скрывается где-то в исходном программном коде (в PHP или, может быть).
Мой проект находится в ASP.NET MVC (сервер) и стандартном HTML, javascript (js / Script, без просмотра бритвы и т. Д.) В качестве клиента.

Таким образом, единственный выбор — сделать эту процедуру API самостоятельно? Какой самый простой способ и язык (в моем случае) PHP, ASP.NET # C?

Использование этого мастера кажется удобным;

https://devtools-paypal.com/integrationwizard/

Также может кто-нибудь сказать, должен ли я изменить код, если мне нравится, что клиенты получают по электронной почте квитанцию ​​(не PayPal-форму) по фактической веб-ссылке программы, как в оригинале. Я думаю, что это в следующей части в той же модели Place_order;

else if(model.get("payment_method") === "none" && typeof model.get("payment_data").receipt_link != 'undefined'){
window.location.href = model.get("payment_data").receipt_link;

Любые незначительные советы или подсказки для получения чего-либо приветствуются.

Благодарю вас!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector