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
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++;
}
}
?>