demo){ //$this->debug = true; $this->account_venditore = "tnx@tnx.it"; //Smart Buttons $this->apiUrl = 'https://integration.api.scalapay.com/v2/'; $this->secret = 'sp_19g6jl09epw22'; } if(!$this->secret) return 'Parametri mancanti'; switch($_GET[$this->step_var]){ case 'cancel': case 'return_ko': return $this->Procedura->annulla(); case 'return_ok': return $this->Procedura->concluso(); case 's2s': if($_GET["orderToken"]){ $paymentResult = $this->sendScalapayApiCall("payments/" . $_GET["orderToken"], [], false); if(in_array((string) $paymentResult->status, ["authorized", "charged"])){ if((string) $paymentResult->captureStatus != "captured"){ // Confermo la cattura dell'ordine $postFields = []; $postFields["token"] = $_GET["orderToken"]; $capturePaymentResult = $this->sendScalapayApiCall("payments/capture", $postFields); if((string) $capturePaymentResult->status != "APPROVED"){ indi_redirect($this->Procedura->genera_link_agg(array($this->step_var=>"return_ko"))); } } $this->Procedura->confermato($this->identificativo); indi_redirect($this->Procedura->genera_link_agg([$this->step_var=>"return_ok", "orderToken" => "", "status" => ""])); } else { indi_redirect($this->Procedura->genera_link_agg(array($this->step_var=>"return_ko"))); } } else { trigger_error("Ricevuta chiamata S2S da ScalaPay senza orderToken"); indi_redirect($this->Procedura->genera_link_agg(array($this->step_var=>"error"))); } case 'error': return $this->Procedura->errore(); default: $this->Procedura->iniziato($this->nome_metodo); $postFields = []; $postFields["totalAmount"]["amount"] = (string) $this->importo; $postFields["totalAmount"]["currency"] = (string) $this->valuta; $postFields["merchant"]["redirectCancelUrl"] = (string) $this->Procedura->genera_link_agg(array($this->step_var=>"cancel")); $postFields["merchant"]["redirectConfirmUrl"] = (string) $this->Procedura->genera_link_agg(array($this->step_var=>"s2s")); $postFields["merchant"]["merchantReference"] = (string) $this->identificativo; if($this->orderInformations) foreach($this->orderInformations as $keyPostField => $postFieldValues){ $postFields[$keyPostField] = $postFieldValues; } if(!$postFields["consumer"]["givenNames"]) $postFields["consumer"]["givenNames"] = ""; if(!$postFields["consumer"]["surname"]) $postFields["consumer"]["surname"] = ""; $curlResult = $this->sendScalapayApiCall("orders", $postFields); if($curlResult->checkoutUrl){ indi_redirect($curlResult->checkoutUrl); } else { indi_redirect($this->Procedura->genera_link_agg(array($this->step_var=>"return_ko"))); } break; } } function demoInfo(){ return ' Inserisci un numero di telefono valido per ricevere OTP di conferma.

Carte di credito di test:

Pagamento Accettato:
Numero di carta: 4111 1111 1111 1111
CVV: qualsiasi codice (es. 123)
Data di scadenza: qualsiasi data

Pagamento Respinto:
Numero di carta: 4100 0000 0000 0019
CVV: qualsiasi codice (es. 123)
Data di scadenza: qualsiasi data'; } function getScalapayCurlHeader(){ $curlRequestHeaders = []; $curlRequestHeaders[] = "Content-Type: application/json"; $curlRequestHeaders[] = "Authorization: Bearer " . $this->secret; $curlRequestHeaders[] = "Accept: application/json"; return $curlRequestHeaders; } function sendScalapayApiCall($operation, $callParameters = [], $isPost = true){ $curlRequestHeaders = $this->getScalapayCurlHeader(); $curlUri = $this->apiUrl . $operation; $curlRequest = curl_init($curlUri); curl_setopt($curlRequest, CURLOPT_HTTPHEADER, $curlRequestHeaders); curl_setopt($curlRequest, CURLOPT_RETURNTRANSFER, true); curl_setopt($curlRequest, CURLOPT_ENCODING, ""); curl_setopt($curlRequest, CURLOPT_MAXREDIRS, 10); curl_setopt($curlRequest, CURLOPT_TIMEOUT, 30); curl_setopt($curlRequest, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); if($isPost) curl_setopt($curlRequest, CURLOPT_CUSTOMREQUEST, "POST"); if($callParameters) curl_setopt($curlRequest, CURLOPT_POSTFIELDS, json_encode($callParameters)); $curlResult = curl_exec($curlRequest); curl_close($curlRequest); return json_decode($curlResult); } function setValuta($currencyCode){ $this->valuta = $currencyCode; } } ?>