trelamenos333 Δημοσ. 21 Απριλίου 2014 Δημοσ. 21 Απριλίου 2014 Καλησπέρα παιδιά,Θα ήθελα να κάνω μια ερώτηση σχετικά με το σύστημα πληρωμών της Viva Payments.Εχω ανοίξει ένα λογαριασμό για ένα πελάτη μου και ως εκεί μια χαρά..Αυτό που θέλω να κάνω είναι να συνδέσω το site του με το σύστημα πληρωμών τους.Είναι ένα site απο "ενοικιαζόμενα δωμάτια" και αυτό που θέλω είναι ο επισκέπτης να μπορεί να πληρώσει το ποσό το οποίο συμφώνησε με τον ιδιοκτήτη μέσω viva.Γνωρίζει κάποιος πως μπορεί να γίνει αυτό;Γίνεται κάποιο redirect;Σχετικά με τον κώδικα που χρειάζεται;Ευχαριστώ πολύ!!!
parasaser Δημοσ. 21 Απριλίου 2014 Δημοσ. 21 Απριλίου 2014 το έχω ακουστά αυτό το visa payment, αλλά δεν ξέρω λεπτομέρειες. αν δεν μπορείς παντός να βγάλεις άκρη, την ίδια δουλειά την κάνεις και με το paypal, μπορεί δηλαδή ο οποιοσδήποτε με μια απλή κάρτα visa/ master card/ amex να κάνει αγορά. γιατί δεν του ζητάς να βγάλει μια άδεια από visa/ master card/ amex ώστε να αποφύγει τους μεσάζοντες και τις προμήθειες τους?
trelamenos333 Δημοσ. 21 Απριλίου 2014 Μέλος Δημοσ. 21 Απριλίου 2014 Ευχαριστώ για την απάντση σου, Σχετικά με το paypal έχει ήδη και το έχουμε βάλει απλά το θέμα είναι ότι πολλοί νομίζουν πως αν δεν έχουν λογαριασμό paypal δεν μπορούν να πληρώσουν και εκεί είναι το θέμα.. Οσο για την άδεια...δεν θέλει να μπει σε αυτήν την διαδικασία... Οπως και να'χει ευχαριστώ και πάλι
vacilis Δημοσ. 21 Απριλίου 2014 Δημοσ. 21 Απριλίου 2014 Αυτο μαλλον θα σε βοηθήσει: https://github.com/VivaPayments/API Να και το wiki του: https://github.com/VivaPayments/API/wiki
Bonanhel Δημοσ. 29 Απριλίου 2014 Δημοσ. 29 Απριλίου 2014 Καλησπέρα η σύνδεση είναι σχετικά απλή.Σου στέλνω τον κώδικα PHP απο μια δική μου ιστοσελίδα. Οι μεταβλητές παρακάτω πρέπει να δημιουργηθούν απο τα πεδία της φόρμας σου πρίν την κράτηση $txt_email$txt_phone $txt_firstname $txt_lastname $payment_price $x_guid <?php $xml_data = ""; $xml_data = $xml_data . "{"; $xml_data = $xml_data . " \"Tags\": ["; $xml_data = $xml_data . " \"TO ONOMA TOY SITE ΣΟΥ\","; $xml_data = $xml_data . " \"\","; $xml_data = $xml_data . " \"\""; $xml_data = $xml_data . " ],"; $xml_data = $xml_data . " \"Email\": \"" . $txt_email . "\","; $xml_data = $xml_data . " \"Phone\": \"" . $txt_phone . "\","; $xml_data = $xml_data . " \"FullName\": \"" . $txt_firstname . " " . $txt_lastname . "\","; $xml_data = $xml_data . " \"PaymentTimeOut\": 86400,"; $xml_data = $xml_data . " \"RequestLang\": \"en-US\","; $xml_data = $xml_data . " \"MaxInstallments\": 1,"; $xml_data = $xml_data . " \"AllowRecurring\": false,"; $xml_data = $xml_data . " \"AllowTaxCard\": false,"; $xml_data = $xml_data . " \"IsPreAuth\": false,"; $xml_data = $xml_data . " \"Amount\": " . $payment_price . ","; $xml_data = $xml_data . " \"MerchantTrns\": \"" . $x_guid . "\","; $xml_data = $xml_data . " \"CustomerTrns\": \"ΟΝΟΜΑΣΙΑ ΙΣΤΟΣΕΛΙΔΑΣ Η ΕΠΙΧΕΙΡΗΣΗΣ\","; $xml_data = $xml_data . "}"; $username = "το όνομα χρήσης API μέσα απο την ιστοσελίδα του viva payments "; $password = "κωδικός"; $URL = "https://www.vivapayments.com/api/orders/"; $ch = curl_init($URL); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password); $output = curl_exec($ch); $arr = json_decode($output,true); $paymentid = $arr["OrderCode"]; curl_close($ch); ?> 1
Uberalles_gr Δημοσ. 30 Μαρτίου 2016 Δημοσ. 30 Μαρτίου 2016 Επαναφέρω το topic. Θέλει ένας πελάτης μου να βάλει πληρωμή με viva wallet. Το site είναι φτιαγμένο σε php. Κάποιος συνάδελφος να βοηθήσει την κατάσταση; Ευχαριστώ, Βασίλης.
alou Δημοσ. 30 Μαρτίου 2016 Δημοσ. 30 Μαρτίου 2016 Με το class που θα δεις παρακάτω (έβγαλα τα comments γιατί είχαν κάποια στοιχεία), αφού βάλεις merchant id και api key, κάνεις κλήσεις κάπως έτσι: (προφανώς αλλάζεις τα namespaces όπως είναι λογικό για εσένα) $viva = new VivaPayment; $amount = 100; $vivadata = $viva->pay($amount); if ($vivadata['status'] === 'ok') { //to viva sou apantise ok, exeis oti xreiazesai sto $vivadata } για να τσεκάρεις κάποια πληρωμή με κωδικό $payment->code: $viva = new \App\Shop\Services\Apis\VivaPayment; if ($viva->isTransactionValid($payment->code)) { //update payment status? or whatever } <?php namespace App\Shop\Services\Apis; class VivaPayment { protected $request = 'https://www.vivapayments.com/api/orders'; protected $MerchantId = '...'; protected $APIKey = '...'; public function pay($amount, $recurring = false, $lang = 'el-GR') { $Amount = (int)($amount * 100); $AllowRecurring = $recurring; $RequestLang = $lang; $postargs = 'Amount='.urlencode($Amount).'&AllowRecurring='.$AllowRecurring.'&RequestLang='.$RequestLang; $session = curl_init($this->request); curl_setopt($session, CURLOPT_POST, true); curl_setopt($session, CURLOPT_POSTFIELDS, $postargs); curl_setopt($session, CURLOPT_HEADER, true); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); curl_setopt($session, CURLOPT_USERPWD, $this->MerchantId.':'.$this->APIKey); curl_setopt($session, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); $response = curl_exec($session); $header_len = curl_getinfo($session, CURLINFO_HEADER_SIZE); $resHeader = substr($response, 0, $header_len); $resBody = substr($response, $header_len); curl_close($session); $answer = array( 'status' => 'error'); try { if(is_object(json_decode($resBody))){ $resultObj=json_decode($resBody); }else{ preg_match('#^HTTP/1.(?:0|1) [\d]{3} (.*)$#m', $resHeader, $match); // throw new Exception("API Call failed! The error was: ".trim($match[1])); $answer['msg'] = 'Api call error'; return $answer; } } catch( Exception $e ) { $answer['msg'] = 'Api call error'; return $answer; } if ($resultObj->ErrorCode==0){ $orderId = $resultObj->OrderCode; $answer['status'] = "ok"; $answer['msg'] = 'url'; $answer['orderid'] = $orderId; $answer['url'] = 'https://www.vivapayments.com/web/newtransaction.aspx?ref='.$orderId; return $answer; } else{ $answer['msg'] = 'Returned with error code'; return $answer; } } public function getTransaction ($id) { $session = curl_init('https://www.vivapayments.com/api/transactions/?ordercode='.$id); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); curl_setopt($session, CURLOPT_USERPWD, $this->MerchantId.':'.$this->APIKey); curl_setopt($session, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); $reply = json_decode(curl_exec($session)); if ( !isset($reply->Transactions[0]) ) { return null; } return $reply->Transactions[0]; } public function isTransactionValid ($id) { $session = curl_init('https://www.vivapayments.com/api/transactions/?ordercode='.$id); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); curl_setopt($session, CURLOPT_USERPWD, $this->MerchantId.':'.$this->APIKey); curl_setopt($session, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); $data = json_decode(curl_exec($session)); if ( !isset($data->Transactions[0]) ) { return 1 === 0; } return $data->Transactions[0]->StatusId === 'F'; } } 2
Uberalles_gr Δημοσ. 30 Μαρτίου 2016 Δημοσ. 30 Μαρτίου 2016 Σε ευχαριστώ πάρα πολύ για τον κώδικα που μας δίνεις απλόχερα. Θα το κοιτάξω αύριο και θα επανέλθω
Uberalles_gr Δημοσ. 8 Απριλίου 2016 Δημοσ. 8 Απριλίου 2016 Μιας και τελείωσα την σύνδεση με την Viva, θα ήθελα να ευχαριστήσω και δημόσια τον alou για τον κώδικα. Παίζει μια χαρά αυτό που μου έχει στείλει. Στέλνω το τελικό: <?php class VivaPayment { protected $request = 'https://www.vivapayments.com/api/orders'; protected $MerchantId = 'ΧΧΧΧΧΧΧ'; protected $APIKey = 'ΧΧΧΧΧ'; public function pay($amount, $Source = 'Default', $recurring = false, $lang = 'el-GR') { $Amount = (int)($amount * 100); $AllowRecurring = $recurring; $RequestLang = $lang; $SourceCode = $Source; $postargs = 'Amount='.urlencode($Amount).'&AllowRecurring='.$AllowRecurring.'&RequestLang='.$RequestLang.'&SourceCode='.$Source; $session = curl_init($this->request); curl_setopt($session, CURLOPT_POST, true); curl_setopt($session, CURLOPT_POSTFIELDS, $postargs); curl_setopt($session, CURLOPT_HEADER, true); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); curl_setopt($session, CURLOPT_USERPWD, $this->MerchantId.':'.$this->APIKey); curl_setopt($session, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); $response = curl_exec($session); $header_len = curl_getinfo($session, CURLINFO_HEADER_SIZE); $resHeader = substr($response, 0, $header_len); $resBody = substr($response, $header_len); curl_close($session); $answer = array( 'status' => 'error'); try { if(is_object(json_decode($resBody))){ $resultObj=json_decode($resBody); }else{ preg_match('#^HTTP/1.(?:0|1) [\d]{3} (.*)$#m', $resHeader, $match); // throw new Exception("API Call failed! The error was: ".trim($match[1])); $answer['msg'] = 'Api call error'; return $answer; } } catch( Exception $e ) { $answer['msg'] = 'Api call error'; return $answer; } if ($resultObj->ErrorCode==0){ $orderId = $resultObj->OrderCode; $answer['status'] = "ok"; $answer['msg'] = 'url'; $answer['orderid'] = $orderId; $answer['url'] = 'https://www.vivapayments.com/web/newtransaction.aspx?ref='.$orderId; return $answer; } else{ $answer['msg'] = 'Returned with error code'; return $answer; } } } $viva = new VivaPayment; $amount = 0.3; $sourcecode = 'XXXX'; $vivadata = $viva->pay($amount, $sourcecode); if ($vivadata['status'] === 'ok') { } ?> 2-3 παρατηρήσεις από εμένα για να μην παιδευτείτε άδικα όπως εγώ: Η χαμηλότερη συναλλαγή που δέχεται το Viva είναι 30 λεπτά Θα πρέπει στο εταιρικό προφίλ του πελάτη που συνδέεται το Viva να μπείτε στο "Οι πωλήσεις μου > Πηγές πληρωμών" και να φτιάξετε μια νέα σελίδα εφαρμογή. Ο κωδικός που δημιουργείται τον χρησιμοποιείται στο κομμάτι του κώδικα που χρησιμοποιώ την μεταβλητή $sourcecode
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα