Domanda

Ho già un check-out rapido integrato con la mia domanda Codeigniter. Ora voglio di integrare senza soluzione di continuità paypal dove raccolgo le informazioni CC e passarlo a Paypal (via backend) e una volta che tutto è stato approvato, i miei spettacoli applicazione che per l'utente. Tutto questo con sempre fuori corso al sito di Paypal.

So che Paypal dà un po 'di codice di esempio, ma hanno così tanti diversi prodotti che pubblicizzano a fare la stessa cosa.

C'è qualche libreria wrapper in PHP che posso usare per la gestione di tutto questo?

Che tipo di decisione di design è coinvolto nella migrazione verso tale sistema? i certificati SSL necessità dovrei per questo?

È stato utile?

Soluzione

I fece costruire un sito di e-commerce in CodeIgniter, anche facendo perfetta integrazione di Paypal.

Non sembravano esserci orientati agli oggetti involucri suuuuuper-abbastanza là fuori quando ho fatto la mia caccia, ma ho notato alcuni tentativi buoni.

La mia soluzione ha finito per essere un po 'insipido. Ho scaricato il PHP API da qui: https://cms.paypal.com/cms_content/US/ it_IT / files / developer / PP_PHP_NVP_Samples.zip

I salvato il file CallerService.php come application/helpers/paypal_helper.php e ha aggiunto a application/config/autoload.php per tirarlo in app.

Ora, CallerService.php richiede constants.php, in modo che sia necessario copiare e incollare in, o includere il file nella directory constants.php aiutanti. Io ho semplicemente copiato e incollato. Quindi, assicurarsi di configurare tutte le costanti per il tuo account.

Una volta che è istituito, il mio codice appena si presentava così:

  $nvp_query_string = '&PAYMENTACTION=Sale'
                . '&AMT='.urlencode($order->total)
                . '&CREDITCARDTYPE='.urlencode($this->input->post('credit_card_type'))
                . '&ACCT='.urlencode($this->input->post('acct'))
                . '&EXPDATE='.urlencode(str_pad($this->input->post('exp_date_month'), 2, '0', STR_PAD_LEFT).'20'.$this->input->post('exp_date_year'))
                . '&CVV2='.urlencode($this->input->post('cvv2_number'))
                . '&FIRSTNAME='.urlencode($first_name)
                . '&LASTNAME='.urlencode($last_name)
                . '&STREET='.urlencode($order->billing_address_1)
                . '&CITY='.urlencode($order->billing_city)
                . '&STATE='.urlencode($order->billing_state)
                . '&ZIP='.urlencode($order->billing_zip)
                . '&COUNTRYCODE=US&CURRENCYCODE=USD';

  $response = hash_call('doDirectPayment', $nvp_query_string);
  if (strpos(strtoupper($response['ACK']), 'SUCCESS') !== false) {
    // Product purchase was successful.
  }
  else {
    // Product purchase was unsuccessful.
    // The Paypal response will be in $response['ACK'].
    // The Paypal error message to show the customer will be in $response['L_LONGMESSAGE0'].
  }

Non è troppo elegante, ma funziona decisamente bene.

Inoltre, è sicuramente bisogno di un certificato SSL. Questi possono essere acquistati per $ 30 o giù di lì per un singolo dominio. Sono un po 'difficile da configurare in un primo momento, ma non si può saltare questo passaggio. SSL protegge trasmissione tra computer del cliente e il server, in modo da loro informazioni CC non può essere letto che passa attraverso tutti i server e router (o fiutato tramite WiFi) lungo la strada. Quindi, basta fare in modo che, nel modulo che si utilizza per prendere informazioni CC, la forma sottopone alla https: // e non HTTP non protetta:. //

Altri suggerimenti

sono abbastanza sicuro che non importa cosa succede se il vostro sito sta prendendo dati sensibili (ad esempio numero di carta di credito), allora avete bisogno di un certificato SSL. A meno che non sono sul server di qualcun altro (paypal.com), è necessario prendersi cura di questo. E, come hai detto tu, non vuoi mandarli a paypal.com, quindi sì, avrete bisogno di uno.

Inoltre, se si dispone già di esprimere checkout integrato, si dovrebbe utilizzare un certificato SSL per che comunque, giusto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top