首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过cURL提交表单并将浏览器重定向到PayPal

通过cURL提交表单并将浏览器重定向到PayPal
EN

Stack Overflow用户
提问于 2013-02-13 06:40:05
回答 1查看 17.1K关注 0票数 17

我正在开发一个网站,客户有几个付款选择,包括PayPal支付标准。由于我正在收集大量有关客户的数据,因此我希望在将用户发送到PayPal的服务器之前,先在我的服务器上处理表单。一种选择是将数据连接到单个字符串中,将该字符串分配给custom字段,然后在IPN响应中处理它,但我发现这是一个非常不优雅的解决方案。相反,在收集用户数据之后,我尝试使用cURL提交一个标准的HTML PayPal表单。如何将用户重定向到PayPal以完成结帐过程?

代码语言:javascript
复制
  // 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@example.com';
    $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);
  }
EN

回答 1

Stack Overflow用户

发布于 2013-02-13 06:45:29

做curl它将在后端进行端到端调用,它不会反映在前端行为上。

你必须用隐藏字段和javascript制作一个表单,以在页面加载后自动提交表单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14843212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档