【问题标题】:CodeIgniter Form not redirecting properly to paypalCodeIgniter 表单未正确重定向到贝宝
【发布时间】:2015-08-21 23:11:48
【问题描述】:

我正在使用支付网关 PayPal 制作电子书在线商店。在用户购买我的书之前,我希望他们注册并且我想将他们的信息保存到我的数据库中。这是我从developer.paypal.com 复制的代码。

 <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
            <div>
              <input type="text" class="form-control" placeholder="First Name" name="buyer_first_name" required id="mailchimp-fname">
              <br/>
            </div>
            <div>
              <input type="text" class="form-control" placeholder="Last Name" name="buyer_last_name" required id="mailchimp-lname">
             <br/>
            </div>
            <div>
              <input type="email" class="form-control" placeholder="Email" required name="buyer_email" id="mailchimp-email">
              <br/>
            </div>
            <button type="submit" class="btn btn-default">
              SIGN UP USING FACEBOOK
            </button>
            <input type="hidden" name="cmd" value="_s-xclick">
            <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
            ">
            <input type="submit" name="submit" value="BUY" class="btn btn-default">
          </form>

当用户提交表单时,它会将我带到 PayPal 结账处

这很好,这就是我想要的,但我也想将他们签名的表单字段插入到我的数据库中,所以我稍微更改了代码。这是我的视图代码:

  <?php echo form_open('welcome/the_buyer')?>
            <div>
              <input type="text" class="form-control" placeholder="First Name" name="buyer_first_name" required id="mailchimp-fname">
              <br/>
            </div>
            <div>
              <input type="text" class="form-control" placeholder="Last Name" name="buyer_last_name" required id="mailchimp-lname">
             <br/>
            </div>
            <div>
              <input type="email" class="form-control" placeholder="Email" required name="buyer_email" id="mailchimp-email">
              <br/>
            </div>
            <button type="submit" class="btn btn-default">
              SIGN UP USING FACEBOOK
            </button>
            <input type="hidden" name="cmd" value="_s-xclick">
            <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
            ">
            <input type="submit" name="submit" value="BUY" class="btn btn-default">
          </form>

我的控制器代码:

  public function the_buyer(){

    $data['buyer_first_name'] = $this->input->post('buyer_first_name');
    $data['buyer_last_name']  = $this->input->post('buyer_last_name');
    $data['buyer_email']      = $this->input->post('buyer_email');
    $this->load->model('buyers_db/buyers');
    $this->buyers->insert($data);
    redirect('https://www.paypal.com/cgi-bin/webscr');

}

我的型号代码:

public function insert($data){

        $this->db->insert('buyers',$data);

    }

现在当用户提交表单时,字段值正在插入到我的数据库中,但现在页面正在将我重定向到这个主页

【问题讨论】:

  • 在提交按钮上使用js ajax函数。
  • 您的代码正在将您的表单提交到贝宝网站。redirect('https://www.paypal.com/cgi-bin/webscr'); 它只是重定向(获取方法)到贝宝网站而不提交表单。贝宝没有获得任何价值,因此它将您重定向到其主页
  • 那我该如何解决呢?

标签: php forms codeigniter paypal


【解决方案1】:

表单需要直接提交给 PayPal,而不是您的网站。您将需要使用notify url 或return 链接来处理付款并在数据库中插入任何信息。

有关PayPal IPN的更多信息,我建议您查看this link

您需要在表单的自定义字段中包含要存储的任何数据。我建议,存储类似 user_id 或加密的 user_id 的内容,以便当notify ping 回您的网站时,您可以读取custom 中的内容,并使用它将数据插入数据库。请注意,此字段可能被篡改,因此请记住对其进行清理或加密,以便用户无法更改数据。

【讨论】:

    【解决方案2】:

    我没有重定向到正确的网址

     redirect('https://www.paypal.com/pe/cgi-bin/webscr?cmd=_flow&SESSION=S-A8TQJiOMvvMRh8VUV6-8W01hNHYgkK0ZVirABunW_IjHIcFecUT9cfGxm&dispatch=50a222a57771920b6a3d7b606239e4d529b525e0b7e69bf0224adecfb0124e9b61f737ba21b08198acc59b45c1b5383c3fbf91319c9514c0');
    

    感谢大家的帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-27
      • 2013-02-24
      • 2014-10-22
      • 2012-02-11
      • 1970-01-01
      • 2011-12-27
      • 2013-05-06
      • 2020-07-23
      相关资源
      最近更新 更多