Pregunta

Estoy probando masspay de PayPal utilizando su ' MassPay ejemplo NVP ' y I que tiene dificultades para tratar de modificar el código para que introduce datos de mi base de datos MySQL.

Básicamente tengo tabla de usuario en MySQL que contiene la dirección de correo electrónico, estado de pago (a pagar, no remunerado) y el equilibrio.

CREATE TABLE `users` (
  `user_id` int(10) unsigned NOT NULL auto_increment,
  `email` varchar(100) collate latin1_general_ci NOT NULL,
  `status` enum('unpaid','paid') collate latin1_general_ci NOT NULL default 'unpaid',
  `balance` int(10) NOT NULL default '0',
  PRIMARY KEY  (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci

Datos:

1   test1@example.net   paid    100
2   test2@example.net   unpaid  11
3   test3@example.net   unpaid  20
4   test4@example.net   unpaid  1
5   test5@example.net   unpaid  20
6   test6@example.net   unpaid  15

a continuación, he creado una consulta que selecciona los usuarios con un saldo pendiente de pago de $ 10 en adelante:

  $conn = db_connect();
  $query=$conn->query("SELECT * from users WHERE 
                       balance >='10'
                       AND status = ('unpaid')"); 

Lo que me gustaría es que cada registro devuelto por la consulta para que pueblan el código de abajo:

Ahora el código que creo que tengo que modificar es el siguiente:

    for($i = 0; $i < 3; $i++) {
    $receiverData = array(  'receiverEmail' => "user$i@paypal.com",
                            'amount' => "example_amount",);
    $receiversArray[$i] = $receiverData;
}

Sin embargo yo no puedo conseguir que funcione, he intentado usar mysqli_fetch_array y luego reemplazado "user$i@paypal.com" con $ fila [ 'email'] y "example_amount" con la fila [ 'equilibrio'] en varios métodos de codificación, pero no funciona. También lo necesito de bucle para sin embargo muchas filas que se recuperan de la consulta como <3 en el bucle anterior.

Así, el resultado final yo estoy buscando es la cadena $ nvpStr pasar con algo como esto:

$nvpStr = "&EMAILSUBJECT=test&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD&L_EMAIL0=$test2@example.net&L_Amt=11&L_EMAIL1=$test3@example.net&L_Amt=11&L_EMAIL2=$test3@example.net&L_Amt=20&L_EMAIL3=$test5@example.net&L_Amt=20&L_EMAIL0=$test6@example.net&L_Amt=15";

Gracias

¿Fue útil?

Solución

He resuelto el problema después de algún ensayo y error:

   <?php
     $nvpStr="&EMAILSUBJECT=$emailSubject&RECEIVERTYPE=$receiverType&CURRENCYCODE=$currency";   

$conn = db_connect();
  $query=$conn->query("SELECT email,balance from users WHERE 
                       balance >='10'
                       AND status = ('unpaid')");
$i = 0;
  while ($i <= mysqli_fetch_row) {
    while($row = mysqli_fetch_object($query)) { 
      $nvpStr.="&L_EMAIL$i=$row->email&L_Amt$i=$row->balance"; 
      $i++;    
}
}

    ?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top