私は codeigniter の初心者ですが、これまでのところ、最初のアプリケーションの開発に成功しています。ただし、CI_MERCHANT ライブラリをサイトに統合しようとすると、問題なく Paypal にリダイレクトされ、トランザクションを正常に完了して自分の Web サイトにリダイレクトされることさえあります。ただし、この情報を抽出してデータベースに投稿することに加えて、paypal からアプリケーションに送信された「隠された情報」を確認する方法に行き詰まっています。
私のコントローラーにはこれがあります:
public function place_order($id=NULL){
$this->merchant->load('paypal_express');
$id=$this->session->userdata('id');
$customer_id=$id;
$rules=$this->order_m->rules_place_order;
$this->form_validation->set_rules($rules);
if ($this->form_validation->run() == FALSE) // validation hasn't been passed
{
$this->data['subview']='customer/order_view';
$this->load->view('templates/header_customer');
$this->load->view('customer/_layout_main',$this->data);
$this->load->view('templates/footer_customer');
}
else // passed validation proceed to post success logic
{
// build array for the model
$data=$this->order_m->array_from_order(array('topic_title','discipline','academic_level','type_of_service','paper_format','pages','no_of_sources','no_of_slides','paper_details','deadline','timezones'));
$data['customer_id']=$id;
$this->order_m->save_data($data);
$this->db->where('customer_id',$id);
//get the last inserted id
$no=$this->db->insert_id();
$settings=$this->merchant->default_settings();
//payment for order
$params = array(
'amount' => 100.00,
'currency' => 'USD',
'return_url' => 'http://localhost/customers/order/paypal',
'cancel_url' => 'http://localhost/customers/order'
);
$response=$this->merchant->purchase($params);
}
}
public function paypal(){
var_dump($_GET);
$this->merchant->load('paypal_express');
$settings=$this->merchant->default_settings();
$params = array(
'amount' => 100.00,
'currency' => 'USD',
);
$response=$this->merchant->purchase_return($params);
var_dump($response);
if ($response->status() == Merchant_response::AUTHORIZED)
{
echo "status is AUTHORIZED";
}
if ($response->status() == Merchant_response::FAILED)
{
echo "status is FAILED";
}
if ($response->status() == Merchant_response::REDIRECT)
{
echo "status is REDIRECT";
}
if ($response->status() == Merchant_response::COMPLETE)
{
echo "status is COMPLETE";
}
if ($response->status() == Merchant_response::REFUNDED)
{
echo "status is REFUNDED";
}
これにより、paypal に正常にリダイレクトされ、取引を完了することができます。しかし、私は支払い処理の初心者であるため、ここから先に進むことができません。1. Paypal とのすべての取引を確認し、この情報を視覚化してデータベースに投稿できるようにします。2. 顧客をペイパルにリダイレクトする前にデータベースに投稿した情報と、ペイパルから受け取った情報を比較します。