今日の私の問題は、私が実行する高速チェックアウトのWebアプリケーションがあることです。 クライアントのサーバーアーキテクチャを使用してセキュリティの問題を回避しました。 だから私のクライアントコードは以下の通りです:PayPalは急行チェックアウト中に突然 "onAuthorize"メソッドを呼び出さない
paypal.Button.render({
env : 'sandbox',
commit: true,
style: {
size: 'medium',
color: 'gold',
shape: 'pill',
label: 'checkout'
},
locale: 'en_US',
payment: function() {
nickname = $("#nickname").val();
amount = $("#amount").val();
description = $("#description").val();
data = {
"nickname" : nickname,
"amount" : amount,
"description" : description
};
return new paypal.Promise(function(resolve, reject) {
// Call your server side to get the Payment ID from step 3, then pass it to the resolve callback
jQuery.post("/newPayment", data).done(function(data){
console.log("HEI I GOT THE PAYMENT JSON = " + data);
parsed_data = JSON.parse(data);
resolve(parsed_data['id']);
});
});
},
onAuthorize: function(data, actions) {
console.log("JSON = " + JSON.stringify(actions.payment.getTransactions()[0]));
console.log("TRANSACTION = " + actions.payment.getTransactions()[0])
console.log("PAYMENT SUCCESSFUL");
return actions.payment.execute();
},
onError: function(data, actions){
console.log("ERRORRRRRR");
$("#warning").show();
}
}, '#paypal-button');
私のサーバー側のコード:
今app.post("/newPayment",function(req,res){
console.log("RECEIVING POST WITH AMOUNT = " + req.body.amount);
//CONFIGURE PAYMENY - PAYPAL PHASE 1
var first_config = {
'mode': 'sandbox',
'client_id': '<MY CLIENT ID>',
'client_secret': '<MY SECRET>'
};
paypal.configure(first_config);
console.log("AMOUNT AUTHORIZED = " + req.body.amount);
//CREATING PAYMENT
PAYMENT = {
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"redirect_urls": {
"return_url": "http://return.url",
"cancel_url": "http://cancel.url"
},
"transactions": [{
"amount": {
"currency": "EUR",
"total": req.body.amount
},
"description": "This is the payment description."
}]
};
//CREATING PAYMENT AND SENDING IT TO THE CLIENT
paypal.payment.create(PAYMENT, function (error, payment) {
if (error) {
throw error;
} else {
console.log("Create Payment Response");
res.send(JSON.stringify(payment));
}
});
、PayPalのウィンドウが開き、私はテストの支払いを実行するためにすべての私のデータを挿入することができます。 私は支払いを確認し、PayPalサービスが私の "onAuthorize"メソッドを呼び出すはずです。代わりにメロン "onError"が発生します...
何が問題なのですか? URLをリダイレクトしますか? アクションの流れを確実にするためにpaypal.configure()を.then()で実行する必要があるという事実は?
私は本当にペイパルのサービスを
EDIT使用しようとして爆発しています: cloudno.de支払いが正しく実行されるの私のコードを押すが、それはローカルでは動作しません実行している...私はありません何を言うべきか知っている
改ざんを防止する方法がありますか? E.Gユーザーがコンソールで支払い金額を変更してからフォームを送信するのを止めているのは何ですか? – ProEvilz
注目をいただきありがとうございます!実際にはこれは完全なコードではなく、ユーザーが権限がある場合にのみ支払いを実行するサーバー側で行われるチェックがいくつかあります); –