表单提交后将数据传递给CGI脚本

时间:2015-12-08 13:23:20

标签: javascript php wordpress cgi payment-processing

我无法找到这个问题的解决方案,虽然我知道这可能是因为它很简单。但是,我真的很感激一些帮助。 我在客户端的Wordpress网站上有一个定制的支付处理插件(用于CCBill)。在初始会员资格付款后,用户可以选择以任何金额进行额外捐赠,这些捐赠通过CCBill的ChargeByPreviousTransactionID系统进行,因此他们不必再次输入他们的信用卡详细信息。 插件检查用户是否具有现有事务并从数据库中提取相关数据。然后,当他们输入金额并提交表单时,它会构造一个查询字符串,然后将其作为弹出窗口的URL加载。

这会给我们带来两个具体问题:

  • 大多数浏览器会阻止弹出窗口&
  • 提交查询的IP地址必须在支付处理器上列入白名单以便付款 - 这应该是网站的IP,但是在弹出窗口中它似乎是用户的IP ,我们不能将白名单

有没有办法将这些数据传递给脚本,而无需打开弹出窗口或让用户离开我们的网站? 我无法让原始开发人员解决这个问题,我真的希望通过自己修复它来提高我的编程技能。

以下是代码的相关部分:

function shortcode_function(  ) 
{
    $detailsid='';
    if(is_user_logged_in())
    {
        global $current_user;

        $detailsid = get_user_meta( $current_user->ID, 'get_donate_details_id', true );
        $detailsmoney = get_user_meta( $current_user->ID, 'get_donate_details_price', true );
        if($detailsid!=''&& isset($_POST['wq_re_donate_now']))
        {

        ?>
            <script type="text/javascript">
            var url="https://bill.ccbill.com/jpost/billingApi.cgi?clientAccnum=900000&username=test123&password=test123&action=chargeByPreviousTransactionId&newClientAccnum=900000&newClientSubacc=0000&sharedAuthentication=1&initialPrice=<?php echo number_format($_POST['wq_amount']); ?>&initialPeriod=365&recurringPrice=0&recurringPeriod=0&rebills=0&subscriptionId=<?php echo $detailsid; ?>&currencyCode=840";

            var myWindow =window.open(url, "myWindow", "width=200, height=100");
            </script>
            <?php
        }
    }

if($detailsid!='')
    {
            ?>
    <div class="donateholder">
    <div class="donateheader"><h4>Make Donation</h4></div>
    <form method="post" action="">
    <div class="donatediv" align="left">
    <h3>Amount: &#36;<input maxlength="4" onkeypress="return isNumberKey(event)" type="text" size="5" class="amount" name="wq_amount" id="randomnumber" />
    <input type="submit" name="wq_re_donate_now" value="Submit"  />
    </h3></div>
    </form>
    </div>
<?php
    }
}

谢谢!

1 个答案:

答案 0 :(得分:0)

open -a /path/to/vmd --args someMolecule.gro 并不打算从JavaScript端调用。您需要有一个后端服务器,它接受从前端完成的JavaScript调用以及必要的用户相关信息,然后,这个后端服务器需要调用ChargeByPreviousTransactionID

这样,您可以告诉CCBill商户支持将后端服务器的IP地址列入白名单,以便您可以进行此HTTP呼叫。确保您的后端服务器具有静态IP,以便永远不会更改。

请记住,当您在前端使用URL时,如果您对其中的用户名和密码进行硬编码,则表示需要将它们放在后端。像这样,每个人都可以通过在浏览器中检查JavaScript来查看您的用户名和密码。