2015-05-04 12 views
22

Devo implementare Paypal nella mia applicazione. Qui ho aggiunto alcuni prodotti nel carrello. Se clicco sul carrello, devo pagare l'importo utilizzando Paypal.Problema di integrazione Paypal in titanio

Cliccando il pulsante Paypal, sto ottenendo il seguente errore:

Gli importi indicati per i prezzi, imposte, e la spedizione non aggiungere fino a concorrenza dell'importo totale.

Perché viene visualizzato questo errore?

Sto usando il seguente codice:

$.paypalWindow.addEventListener('open', function(){ 
var Paypal = require('ti.paypal'); 
var u = Ti.Android != undefined ? 'dp' : 0; 
var status = Ti.UI.createLabel({ top: 20 + u, height: 50 + u, color: '#333', text: 'Loading, please wait...' }); 
$.paypalWindow.add(status); var price = totalamount; 
var invoiceitemslist = JSON.stringify(data); 

var button; function addButtonToWindow() { 
if (button) { $.paypalWindow.remove(button); button = null; } 
button = Paypal.createPaypalButton({ width: 194 + u, height: 37 + u, buttonStyle: Paypal.BUTTON_194x37, top: 20 + u, 

    language: 'en_US', 
    appID: 'APP-80W284485P519543T', 
    paypalEnvironment: Paypal.PAYPAL_ENV_SANDBOX, 
    feePaidByReceiver: false, 
    enableShipping: false, 
    payment: { 
     paymentType: Paypal.PAYMENT_TYPE_BUSINESS, 
     subtotal: price, 
     tax: 0.00, 
     shipping: 0.00, 
     currency: 'USD', 
     recipient: '[email protected]', 
     customID: 'anythingYouWant', 
     invoiceItems: 
    [{"name":"Bajaj 200 mm Ultima PT01 Personal Fan","totalPrice":2997,"itemPrice":999,"itemCount":3}, 
      ], 
     ipnUrl: 'http://www.appcelerator.com/', 
     merchantName: 'EYMOBINS Insurance', 
     memo: 'For the insurance with EYMOBINS!' 
      } 
     }); 

button.addEventListener('paymentCancelled', function (e) { 
    alert('Payment cancelled. Please try again!'); 
    addButtonToWindow(); 
}); 
button.addEventListener('paymentSuccess', function (e) { 
    alert('Payment successfull. Please get your Policy No.!'+" "+e.transactionID); 
    $.paypalWindow.remove(button); 
    //addButtonToWindow(); 
}); 
button.addEventListener('paymentError', function (e) { 
    alert('Payment Error. Please try again!'); 
    addButtonToWindow(); 
}); 

button.addEventListener('buttonDisplayed', function() { 
    $.paypalWindow.remove(status); 
    //alert('Please pay '+Ti.App.totalcost+'$ with Paypal!') 
}); 

button.addEventListener('buttonError', function() { 

}); 

$.paypalWindow.add(button); 
} 
addButtonToWindow();    
    }); 


$.paypalWindow.open(); 

Si prega di verificare il codice e darmi un'idea per risolvere il problema di cui sopra.

EDIT:

Qui sto affrontando una questione:

[{"name":"Bajaj 200 mm Ultima PT01 Personal Fan","totalPrice":999,"itemPrice":999,"itemCount":1},{"name":"Average2Excellent CBSE KG EVS MATHS ENG Educational CD ROMS","totalPrice":547,"itemPrice":547,"itemCount":1}] 

Qui il TotalAmount è 1546. Qui ho stampato le invoiceitems nella console, e sto ottenendo i dati come sopra .

Così che mi hanno dato come:

invoiceItems:invoiceitems, 

come mezzo sto ottenendo il problema (gli importi indicati per i prezzi, imposte, e la spedizione non aggiungere fino a concorrenza dell'importo totale).

Stessa cosa ho scritto il codice come:

invoiceItems:[{"name":"Bajaj 200 mm Ultima PT01 Personal Fan","totalPrice":999,"itemPrice":999,"itemCount":1},{"name":"Average2Excellent CBSE KG EVS MATHS ENG Educational CD ROMS","totalPrice":547,"itemPrice":547,"itemCount":1}] 

che sta funzionando perfettamente.

Non funziona in modo dinamico quando viene assegnato il valore. Puoi controllare il codice e aiutare?

EDIT:

Se ho cercato di eseguire questo codice su un dispositivo Android, come sto facendo clic sul pulsante PayPal nulla happends. Perché il modulo di accesso non è aperto nel dispositivo Android.

+0

È possibile fornire l'ID di correlazione restituito dalla risposta PayPal? – Eshan

+0

non ho dato l'id di correlazione nel mio codice dovunque. Dovrei creare quell'id? se stai facendo il tutorial per favore dammi quello per imparare –

risposta

5

Perché stai sfuggendo alle citazioni in questo codice?

[{"name":"Bajaj 200 mm Ultima PT01 Personal Fan","totalPrice":2997,"itemPrice":999,"itemCount":3} 

Questo non è JSON valido (o Javascript per quella materia). È richiesto da Paypal? Penso che dovrebbe assomigliare a questo:

[{"name":"Bajaj 200 mm Ultima PT01 Personal Fan","totalPrice":2997,"itemPrice":999,"itemCount":3} 

Edit:

Ho avuto uno sguardo più da vicino il vostro codice di esempio. Puoi confermare da dove proviene totatamount? Come il campione del codice stand sarà undefined, che sarebbe coerente con il messaggio di errore che hai descritto. Puoi confermare che è definitivamente il valore corretto IMMEDIATAMENTE prima di inviare questi dati?

La specifica ti.paypal ha un codice di esempio nel numero README file, che fornisce un buon esempio di come impostare createPaypalButton. Consiglierei di guardare questo se non l'hai già fatto.

button = Paypal.createPaypalButton({ 
    // NOTE: height/width only determine the size of the view that the button is embedded in - the actual button size 
    // is determined by the buttonStyle property! 
    width: 194 + u, height: 37 + u, 
    buttonStyle: Paypal.BUTTON_194x37, // The style & size of the button 
    bottom: 50 + u, 

    language: 'en_US', 
    textStyle: Paypal.PAYPAL_TEXT_DONATE, // Causes the button's text to change from "Pay" to "Donate" 

    appID: '<<<YOUR APP ID HERE>>>', // The appID issued by Paypal for your application; for testing, feel free to delete this property entirely. 
    paypalEnvironment: Paypal.PAYPAL_ENV_SANDBOX, // Sandbox, None or Live 

    feePaidByReceiver: false, // This will only be applied when the transaction type is Personal 
    enableShipping: false, // Whether or not to select/send shipping information 

    advancedPayment: { // The payment itself 
     payments: [ 
      { 
       isPrimary: true, // Mark this as the primary vendor; this marks this as a chain payment. 
       merchantName: 'Primary Vendor', 
       paymentType: Paypal.PAYMENT_TYPE_SERVICE, // The type of payment 
       paymentSubtype: Paypal.PAYMENT_SUBTYPE_DONATIONS, // The subtype of the payment; you must be authorized for this by Paypal! 
       subtotal: 13, // The total cost of the order, excluding tax and shipping 
       tax: 0, 
       shipping: 0, 
       recipient: '<<<YOUR RECIPIENT HERE>>>', 
       customID: 'anythingYouWant', 
       invoiceItems: [ 
        { name: 'Shoes', totalPrice: 8, itemPrice: 2, itemCount: 4 }, 
        { name: 'Hats', totalPrice: 2, itemPrice: 0.5, itemCount: 4 }, 
        { name: 'Coats', totalPrice: 3, itemPrice: 1, itemCount: 3 } 
       ] 
      }, 
      { 
       merchantName: 'Vendor 1', 
       paymentType: Paypal.PAYMENT_TYPE_SERVICE, // The type of payment 
       paymentSubtype: Paypal.PAYMENT_SUBTYPE_DONATIONS, // The subtype of the payment; you must be authorized for this by Paypal! 
       subtotal: 10, // The total cost of the order, excluding tax and shipping 
       tax: 0, 
       shipping: 0, 
       recipient: '<<<YOUR RECIPIENT HERE>>>', 
       customID: 'anythingYouWant', 
       invoiceItems: [ 
        { name: 'Shoes', totalPrice: 8, itemPrice: 2, itemCount: 4 }, 
        { name: 'Hats', totalPrice: 2, itemPrice: 0.5, itemCount: 4 } 
       ] 
      }, 
      { 
       merchantName: 'Vendor 2', 
       paymentType: Paypal.PAYMENT_TYPE_SERVICE, // The type of payment 
       paymentSubtype: Paypal.PAYMENT_SUBTYPE_DONATIONS, // The subtype of the payment; you must be authorized for this by Paypal! 
       subtotal: 3, // The total cost of the order, excluding tax and shipping 
       tax: 0, 
       shipping: 0, 
       recipient: '<<<YOUR RECIPIENT HERE>>>', 
       customID: 'anythingYouWant', 
       invoiceItems: [ 
        { name: 'Coats', totalPrice: 3, itemPrice: 1, itemCount: 3 } 
       ] 
      } 
     ], 
     ipnUrl: 'http://www.appcelerator.com/', 
     currency: 'USD', 
     memo: 'For the orphans and widows in the world!' 
    } 
}); 
+0

sì ... ora ho aggiornato.am ricevendo lo stesso problema solo –

+0

Si prega di rivedere il mio aggiornamento – garryp

+0

Se ho provato a eseguire questo codice su dispositivo Android, come sto facendo clic sul pulsante paypal non succede nulla. Perché il modulo di accesso non è aperto nel dispositivo Android. –

Problemi correlati