Question

J'ai déjà un check-out express intégré à ma demande Codeigniter. Maintenant, je veux intégrer paypal transparente où je collectionne les informations CC et le transmettre à Paypal (via back-end) et une fois que tout est approuvé, montre mon application à l'utilisateur. Tout cela avec sortir toujours sur le site de Paypal.

Je sais que Paypal donne un tas d'exemples de code, mais ils ont tellement de produits différents que la publicité pour faire la même chose.

Y at-il pour gérer tout cela ne importe quelle bibliothèque d'emballage en PHP que je peux utiliser?

Quel genre de décision de conception est impliquée dans la migration vers ce système? Aurais-je besoin de certificats SSL pour cela?

Était-ce utile?

La solution

Je construit un site e-commerce CodeIgniter, faisant également une intégration transparente Paypal.

Il ne semble pas être des emballages orientés objet suuuuuper-joli là-bas quand je l'ai ma chasse, mais j'ai remarqué quelques bonnes tentatives.

Ma solution a fini par être un peu fade. J'ai téléchargé l'API PHP à partir d'ici: https://cms.paypal.com/cms_content/US/ en_US / fichiers / développeur / PP_PHP_NVP_Samples.zip

J'enregistré le fichier CallerService.php comme application/helpers/paypal_helper.php et a ajouté à application/config/autoload.php pour le tirer dans l'application.

Maintenant, CallerService.php nécessite constants.php, de sorte que vous soit nécessaire de copier et coller, ou inclure le fichier constants.php dans votre helpers. Je viens de copier et coller. Ensuite, assurez-vous de configurer toutes les constantes de votre compte.

Une fois que est mis en place, mon code ressemblait à ceci:

  $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'].
  }

Il est pas trop élégant, mais ça fonctionne vraiment bien.

, vous avez besoin DEFINITIF également un certificat SSL. Ceux-ci peuvent être achetés pour 30 $ ou plus pour un seul domaine. Ils sont un peu difficiles à mettre en place au début, mais vous ne pouvez pas sauter cette étape. SSL protège la transmission entre l'ordinateur et le serveur du client, de sorte que leur information CC ne peut pas être lu car il passe par tous les serveurs et les routeurs (ou reniflé par wifi) le long du chemin. Donc, assurez-vous que, sur la forme que vous utilisez pour prendre les informations CC, le formulaire Soumet https: // et non pas un non garanti http: //.

Autres conseils

Je suis sûr que peu importe si votre site prend des données sensibles (à savoir le numéro de carte de crédit), vous avez besoin d'un certificat ssl. À moins d'être quelqu'un d'autre serveur (paypal.com), vous devez prendre soin de cela. Et, comme vous l'avez dit, vous ne voulez pas les envoyer à paypal.com, alors oui, vous aurez besoin d'un.

En outre, si vous avez déjà votre commande express intégré, vous devez utiliser un certificat ssl pour que de toute façon, non?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top