Aiuto inserimento Express Chechout
Inviato: 05/06/2012, 13:15
Salve a tutti, sto terminando la creazione di un sito dedicato ad annunci con la possibilità di acquistare annuni premium.
Utilizzo una board osclass con un plugin per paypal.
Dato che il costo degli annunci premium varia tra 1 e 4€, viene consigliata la creazione di un account per beni digitali per utilizzare i micropagamenti in modo da ridurre le pese verso paypal.
Ho la possiblità di eseguire pagamenti in modalità standard oppure express.
Utilizzando sandbox con l'account che ho creato riesco ad effettuare i pagamenti express senza uscire dal sito, quindi con finestra popup.
Utilizzando invece l'account paypal ufficiale il pulsante per il pagamento non compare e stampando a video la risposta ACK ricevo Failure
Ora l'unica cosa che ho notato è che in sandbox se vado su imposta conto business->metodo di pagamento mi ritrovo "PayPal per Beni Digitali (Pagamento Express) ", mentre nell'account ufficiale ho solo "Pagamento Express".
Dato che lo scipt funziona in sandbox mi chiedevo: devo effettuare delle modifiche per rendere il conto compatibile con questo tipo di pagamenti?
Oppure questo tipo di pagamento non è completamente disponibile in italia?
vi mostro inoltre il codice per l'invio della richiesta a paypal:
spero davvero riusciate a darmi una mano!
Grazie in anticipo
Utilizzo una board osclass con un plugin per paypal.
Dato che il costo degli annunci premium varia tra 1 e 4€, viene consigliata la creazione di un account per beni digitali per utilizzare i micropagamenti in modo da ridurre le pese verso paypal.
Ho la possiblità di eseguire pagamenti in modalità standard oppure express.
Utilizzando sandbox con l'account che ho creato riesco ad effettuare i pagamenti express senza uscire dal sito, quindi con finestra popup.
Utilizzando invece l'account paypal ufficiale il pulsante per il pagamento non compare e stampando a video la risposta ACK ricevo Failure
Ora l'unica cosa che ho notato è che in sandbox se vado su imposta conto business->metodo di pagamento mi ritrovo "PayPal per Beni Digitali (Pagamento Express) ", mentre nell'account ufficiale ho solo "Pagamento Express".
Dato che lo scipt funziona in sandbox mi chiedevo: devo effettuare delle modifiche per rendere il conto compatibile con questo tipo di pagamenti?
Oppure questo tipo di pagamento non è completamente disponibile in italia?
vi mostro inoltre il codice per l'invio della richiesta a paypal:
Codice: Seleziona tutto
$APIUSERNAME = paypal_decrypt(osc_get_preference('api_username', 'paypalplus'));
$APIPASSWORD = paypal_decrypt(osc_get_preference('api_password', 'paypalplus'));
$APISIGNATURE = paypal_decrypt(osc_get_preference('api_signature', 'paypalplus'));
if(osc_get_preference('sandbox', 'paypalplus')==1) {
$ENDPOINT = 'https://api-3t.sandbox.paypal.com/nvp';
} else {
$ENDPOINT = 'https://api-3t.paypal.com/nvp';
}
$VERSION = '65.1'; // must be >= 65.1
$REDIRECTURL = 'hhttps://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=';
if(osc_get_preference('sandbox', 'paypalplus')==1) {
$REDIRECTURL = "https://www.sandbox.paypal.com/incontext?token=";
}
$r = rand(0,1000);
$rpl .= "|".$r;
//Build the Credential String:
$cred_str = 'USER=' . $APIUSERNAME . '&PWD=' . $APIPASSWORD . '&SIGNATURE=' . $APISIGNATURE . '&VERSION=' . $VERSION;
//For Testing this is hardcoded. You would want to set these variable values dynamically
$nvp_str = "&METHOD=SetExpressCheckout"
. '&RETURNURL=' . osc_base_url() . 'oc-content/plugins/' . osc_plugin_folder(__FILE__) . 'return.php?rpl=' . $rpl //set your Return URL here
. '&CANCELURL=' . osc_base_url() . 'oc-content/plugins/' . osc_plugin_folder(__FILE__) . 'cancel.php?rpl=' . $rpl //set your Cancel URL here
. '&PAYMENTREQUEST_0_CURRENCYCODE=' . osc_get_preference('currency', 'paypalplus')
. '&PAYMENTREQUEST_0_AMT=' . $amount
. '&PAYMENTREQUEST_0_ITEMAMT=' . $amount
. '&PAYMENTREQUEST_0_TAXAMT=0'
. '&PAYMENTREQUEST_0_DESC=' . $description
. '&PAYMENTREQUEST_0_PAYMENTACTION=Sale'
. '&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital'
. '&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital'
. '&L_PAYMENTREQUEST_0_NAME0=' . $description
. '&L_PAYMENTREQUEST_0_NUMBER0=' . $itemnumber
. '&L_PAYMENTREQUEST_0_QTY0=1'
. '&L_PAYMENTREQUEST_0_TAXAMT0=0'
. '&L_PAYMENTREQUEST_0_AMT0=' . $amount
. '&L_PAYMENTREQUEST_0_DESC0=Download'
. '&CUSTOM=' . $rpl
. '&useraction=commit'
. '&LOCALECODE=IT';
//combine the two strings and make the API Call
$req_str = $cred_str . $nvp_str;
$response = PPHttpPost($ENDPOINT, $req_str);
//check Response
echo $response['ACK'];
if($response['ACK'] == "Success" || $response['ACK'] == "SuccessWithWarning") {
//setup redirect URL
$redirect_url = $REDIRECTURL . urldecode($response['TOKEN']);
?>
<a href="<?php echo $redirect_url; ?>" id='paypalBtn_<?php echo $r; ?>'>
<img src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" align="left" style="margin-right:7px;" />
</a>
<script>
var dg_<?php echo $r; ?> = new PAYPAL.apps.DGFlow({
trigger: "paypalBtn_<?php echo $r; ?>"
});
</script><?php
} else if($response['ACK'] == 'Failure' || $response['ACK'] == 'FailureWithWarning') {
$redirect_url = ''; //SOMETHING FAILED
}
}
Grazie in anticipo