Envoyer le formulaire via cURL et rediriger le navigateur vers PayPal

Je suis le développement d'un site où les clients ont plusieurs options de paiement, y compris les Paiements par PayPal Standard. Depuis que je suis la collecte d'une quantité considérable de données sur le client, j'aimerais traiter le formulaire sur mon serveur avant l'envoi à l'utilisateur pour le serveur de PayPal. Une option consiste à concaténer les données dans une seule chaîne, affecter la chaîne de la custom domaine, et de les traiter ensuite dans l'IPN de réponse, mais je trouve cela très peu élégante solution. Au lieu de cela, après la collecte des données de l'utilisateur, je suis d'essayer d'utiliser cURL pour soumettre une norme HTML PayPal formulaire. Comment puis-je rediriger l'utilisateur vers PayPal pour effectuer le processus de commande?

  //Process PayPal payment
  if ($method == 'PayPal') {

    //Prepare POST data
    $query = array();
    $query['notify_url'] = 'http://example.com/ipn';
    $query['cmd'] = '_cart';
    $query['upload'] = '1';
    $query['business'] = '[email protected]';
    $query['address_override'] = '1';
    $query['first_name'] = $first_name;
    $query['last_name'] = $last_name;
    $query['email'] = $email;
    $query['address1'] = $ship_to_address;
    $query['city'] = $ship_to_city;
    $query['state'] = $ship_to_state;
    $query['zip'] = $ship_to_zip;
    $query['item_name_'.$i] = $item['description'];
    $query['quantity_'.$i] = $item['quantity'];
    $query['amount_'.$i] = $item['info']['price'];

    //Prepare query string
    $query_string = '';
    foreach ($query as $key=>$value) {
      $query_string .= $key.'='.urlencode($value).'&';
    }
    $query_string = rtrim($query_string, '&');

    //Open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL, 'https://www.paypal.com/cgi-bin/webscr');
    curl_setopt($ch,CURLOPT_POST, count($query));
    curl_setopt($ch,CURLOPT_POSTFIELDS, $query_string);

    //Execute post
    $result = curl_exec($ch);

    //Close connection
    curl_close($ch);
  }

source d'informationauteur David Jones