0

现在我的表单中有这个代码:

<form action="https://www.paypal.com/cgi-bin/webscr" target="_BLANK" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="paypal@********.com">
    <input type="hidden" name="lc" value="SE">
    <input type="hidden" name="item_name" value="Premium Membership">
    <input type="hidden" name="custom" value="<?php echo $session_user_id; ?>">
    <input type="hidden" name="item_number" value="1">
    <input type="hidden" name="amount" value="0.80">
    <input type="hidden" name="currency_code" value="SEK">
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="no_shipping" value="1">
    <input type="hidden" name="notify_url" value="http://*******.com/eta/ipn.php">
    <input type="hidden" name="return" value="http://********.com/purchase/thanks">
    <input type="hidden" name="cancel_return" value="http://*******.com">
    <input type="hidden" name="rm" value="0">
    <input type="hidden" name="bn" value="PP-BuyNowBF">
    <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/x-click-but23.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">
    <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

但问题是我需要获取这些值,在我的另一个文件中进行一些更改,functions.php然后进入https://www.paypal.com/cgi-bin/webscr表单操作,可能使用 PHP 创建一个表单并提交它(在我的情况下,JavaScript 不是一个选项)。

所以,而不是: <form action="https://www.paypal.com/cgi-bin/webscr" target="_BLANK" method="post">我将拥有:

<form role="sendit" method="POST">如果我在functions.php中的代码(我正在使用Wordpress)提交它,它将被抓取,例如:

if ( isset( $_POST['submitted'] ) && isset( $_POST['post_nonce_field'] ) && wp_verify_nonce( $_POST['post_nonce_field'], 'post_nonce' ) ) {

    // grab values from hidden input fields
    $pp_cmd      = $_POST['cmd'];
    $pp_business = $_POST['business'];
    ...

    // do some internal wordpress stuff with grabbed data for statistical purposes etc.

    // and after that redirect using <form action="https://www.paypal.com/cgi-bin/webscr" target="_BLANK" method="post">
    // probably to recreate the form and submit it using php and stay on PayPal site
    ??? what code here ???
}

我可以从我的 functions.php 中的帖子中获取值并将它们存储在变量中,例如$pp_cmd, $pp_business. 问题是我需要以某种方式使用所有这些变量并将它们作为隐藏输入和表单发布方法发送到action="https://www.paypal.com/cgi-bin/webscr"并留在该页面上以继续在 PayPal 页面上,就好像我只是使用带有操作的默认表单到 paypal 页面一样。

怎么做?

这可以通过直接的 PHP 或带有 cURL 的 PHP 来完成吗?如果是,您能否提供一些基本代码,包括至少两个第一个隐藏输入,以便我自己完成?

更新:在我看来,使用 AJAX 不是一个选项。该脚本也必须在不使用 JavaScript 的情况下工作。我正在寻找这个问题的 PHP 解决方案。

4

1 回答 1

0
function curl_post($url, array $post = NULL, array $options = array())
{
    $defaults = array(
        CURLOPT_POST => 1,
        CURLOPT_HEADER => 0,
        CURLOPT_URL => $url,
        CURLOPT_FRESH_CONNECT => 1,
        CURLOPT_RETURNTRANSFER => 0,
        CURLOPT_FORBID_REUSE => 1,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_POSTFIELDS => http_build_query($post)
    );

    $ch = curl_init();
    curl_setopt_array($ch, ($options + $defaults));
    if( ! $result = curl_exec($ch))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result;
}
curl_post("https://www.paypal.com/cgi-bin/webscr",$_POST);

更新:将 CURLOPT_RETURNTRANSFER 更改为 0。OP 想要导航到贝宝页面,而不仅仅是发布。

于 2013-09-04T16:58:47.247 回答