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