Попытка отправить форму Paypal с помощью cURL ... - PullRequest
0 голосов
/ 29 июля 2011

Я изучал, как автоматически передавать отправку формы Paypal, не нажимая кнопку «Оформить заказ».Вот код, который у меня есть, чтобы сделать это:

<?php
$post_data['cmd'] = '_xclick';
$post_data['business'] = 'myemail@website.com';
$post_data['item_name'] = 'The Items You are Purchasing';
$post_data['amount'] = '25';
$post_data['no_shipping'] = '1';
$post_data['no_note'] = '1';
$post_data['currency_code'] = 'USD';
$post_data['bn'] = 'PP-BuyNowBF';

foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);

$curl_connection = curl_init('https://www.paypal.com/cgi-bin/webscr');
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1); 

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string); 

$result = curl_exec($curl_connection);

curl_close($curl_connection); 
?>

Насколько я могу судить, это должно передать значения в Paypal и попросить пользователя заплатить 25 долларов за «Товары, которые вы покупаете», чтобы'myemail@website.com.Но почему-то это не работает, знаете почему?

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Как я вижу, вы используете кнопку "Купить сейчас".Он не работает с curl, потому что пользователь (клиент) должен принять участие в процессе оплаты: войдите в свою учетную запись на PayPal или введите платежную и платежную информацию, если у него его нет, подтвердите оплату и вернитесь к своему счету.«Магазин» вручную.Как пользователь мог сделать это с помощью curl?Все поведение PayPal будет сохранено в переменных curl (если мы можем так сказать). Если вы привязаны к этому методу оплаты и не хотите, чтобы кнопка нажималась вручную (прочитайте форму для отправки), вы можете отправить ее автоматически, используяJavaScript.Или вы можете перенаправить пользователя в PalPal и передать все параметры через GET.Это также должно работать.В противном случае вы должны использовать PayPal Payments Pro.Конкретно - прямая оплата.Пользователь заполнит форму на вашем сайте (кредитная карта, платежная информация и т. Д.), И вы можете использовать curl для завершения платежа.

Извините за плохой английский.Я пытался быть ясным.Я надеюсь, что это будет полезно.

0 голосов
/ 29 июля 2011

Учитывая ваши требования, все, что вам нужно сделать, это сохранить информацию о публикации на последней странице, прежде чем вы хотите, чтобы клиент был перенаправлен на PayPal.

Что-то вроде

<!-- Display all items etc. -->

<form action='https://www.paypal.com/cgi-bin/webscr' method='POST'>
POST DATA

Submit button
</form>

Вы также можете добавить дополнительную страницу, где вы размещаете всю информацию на странице и используете javascript для автоматической отправки формы.

...