单击Paypal的“返回商家”按钮时出现代码问题
Posted
技术标签:
【中文标题】单击Paypal的“返回商家”按钮时出现代码问题【英文标题】:Code Issue when clicks "Return to Merchant" Button of Paypal 【发布时间】:2021-06-17 22:49:45 【问题描述】:我正在使用 Codeigniter 在我的网站上集成 PayPal 支付网关。
//这是我的购买方式
public function buy($id)
$course = $this->course_model->fetch_course_details_for_buy($id);
$returnURL = base_url().'paypal/success'; //payment success url
$cancelURL = base_url().'paypal/cancel'; //payment cancel url
$notifyURL = base_url().'paypal/ipn'; //ipn url
$userID = $this->session->userdata('student_id'); //current user id
$_SESSION['course_id'] = $course->course_id;
$logo = base_url().'assets/images/test-logo.png';
$this->paypal_lib->add_field('return', $returnURL);
$this->paypal_lib->add_field('cancel_return', $cancelURL);
$this->paypal_lib->add_field('notify_url', $notifyURL);
$this->paypal_lib->add_field('item_name', $course->title);
$this->paypal_lib->add_field('custom', $userID);
$this->paypal_lib->add_field('item_number', $course->course_id);
$this->paypal_lib->add_field('amount', $course->amount);
$this->paypal_lib->image($logo);
$this->paypal_lib->paypal_auto_form();
这是我的PayPal类成功方法
function success()
//get the transaction data
$paypalInfo = $this->input->get();
$data['item_number'] = $paypalInfo['item_number'];
$data['txn_id'] = $paypalInfo["tx"];
$data['payment_amt'] = $paypalInfo["amt"];
$data['currency_code'] = $paypalInfo["cc"];
$data['status'] = $paypalInfo["st"];
//pass the transaction data to view
$this->load->view('paypal/success', $data);
这是我的 IPN 方法
function ipn()
//paypal return transaction details array
$paypalInfo = $this->input->post();
$data['user_id'] = $paypalInfo['custom'];
$data['product_id'] = $paypalInfo["item_number"];
$data['txn_id'] = $paypalInfo["txn_id"];
$data['payment_gross'] = $paypalInfo["mc_gross"];
$data['currency_code'] = $paypalInfo["mc_currency"];
$data['payer_email'] = $paypalInfo["payer_email"];
$data['payment_status'] = $paypalInfo["payment_status"];
$paypalURL = $this->paypal_lib->paypal_url;
$result = $this->paypal_lib->curlPost($paypalURL,$paypalInfo);
//check whether the payment is verified
if(preg_match("/VERIFIED/i",$result))
//insert the transaction data into the database
$this->product->insertTransaction($data);
我的付款已从沙盒帐户成功完成。但是,当我在付款后单击返回商家按钮时,它会抛出未定义索引的错误,如成功方法中所述。我首先申请了一次支付网关,但不知道我的代码中缺少什么。任何帮助都是可观的。
【问题讨论】:
【参考方案1】:您应该记录 $paypalInfo 包含的内容。
如果您有enabled PDT,则信息可能以 POST 而不是 GET 的形式出现。
在任何情况下,让您的代码能够检查和处理丢失的数据/索引或将其放入等效的 try/catch 中;它不应该出错。
【讨论】:
以上是关于单击Paypal的“返回商家”按钮时出现代码问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Active Merchant 和 PayPal 时出现 SSL 错误
ElementNotVisibleException:消息:尝试通过 Selenium 和 Python 单击按钮时出现元素不可交互错误