我已经在我的控制器中加载了PayPal库,并为PayPal集成编写了代码。
class Register extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session');
$this->load->library('email');
$this->load->helper('url');
$this->load->library('paypal_lib');
}
public function signup()
{
$this->paypal_lib->add_field('return', $returnURL);
$this->paypal_lib->add_field('rm','2');
$this->paypal_lib->add_field('cancel_return', $cancelURL);
$this->paypal_lib->add_field('notify_url', $notifyURL);
$this->paypal_lib->add_field('item_number', $pkgid);
$this->paypal_lib->paypal_auto_form();
}
}
在我的模板文件上:
jQuery.ajax({
url : '<?php echo $base_url; ?>register/signup',
type: 'POST',
data: jQuery(form).serialize(),
success:function(response){
console.log(response);
}
});
我无法移动到PayPal网站商店。 仍然在同一页面上,没有任何重定向。如何解决这个问题?
最后我分析了这个问题。 我们不应该在 Ajax 上使用 PayPal_lib。 因为Codeigniter忽略了Ajax上的重定向概念。
你不返回任何东西。将您的函数">注册"更改为以下内容:
class Register extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session');
$this->load->library('email');
$this->load->helper('url');
$this->load->library('paypal_lib');
}
public function signup()
{
$this->paypal_lib->add_field('return', $returnURL);
$this->paypal_lib->add_field('rm','2');
$this->paypal_lib->add_field('cancel_return', $cancelURL);
$this->paypal_lib->add_field('notify_url', $notifyURL);
$this->paypal_lib->add_field('item_number', $pkgid);
echo json_encode($this->paypal_lib->paypal_auto_form(), JSON_UNESCAPED_UNICODE);
}
}
更好的是在你的JS代码中将你的数据类型更改为JSON:
jQuery.ajax({
url : '<?php echo base_url(); ?>index.php/register/signup',
type: 'POST',
dataType: "JSON",
data: jQuery(form).serialize(),
success:function(response){
console.log(response);
}
});