public function index() { $this->initial_order(); $pay_type_data = array('pay_type_id' => $this->order['pay_type_id'], 'method_id' => $this->order['method_id']); $this->initial_merchant_data($pay_type_data); $recharging_order['order_sn'] = $this->order['order_sn']; $recharging_order['merchant_id'] = $this->merchant_id; $recharging_order['auth_code'] = $this->input->post('gameon_card'); $update_res = $this->CI->payorder->update_order_to_recharging($recharging_order); $parameters = new payServParam(); $parameters->partnerName = $this->partnerName; // yout id registered at Lyto $parameters->partnerPwd = $this->partnerPwd; // your password registered at Lyto $parameters->cpID = 100; // just put 100 $parameters->ppCardSerialNumber = $recharging_order['auth_code']; // 25 digit of ppcard code, pls also put validation of 25 digit length on your system $parameters->userIpAddress = $this->userIpAddress; // your system ip address $parameters->userID = $this->order['pay_user_id']; // player's userid $parameters->orderNumber = $this->order['order_sn']; // your transaction id, this will be paired with Lyto transaction id for tracing purpose $parameters->option1 = ""; // optional parameter that you want to record and show in report $parameters->option2 = ""; // optional parameter that you want to record and show in report $oSoap = new SoapClient("http://202.93.20.250:8001/Service.asmx?wsdl", array('classmap' => array('paymentService' => 'payServParam'))); $result = $oSoap->paymentService($parameters); $log_array = array('type' => 'gameon check result', 'value' => $result); log_message('gash', json_encode($log_array)); $payment_result = explode('/', $result->paymentServiceResult); if ($payment_result[0] > 0 && isset($payment_result[1])) { //successful $pay_amount_info = array('pay_amount' => $payment_result[1], 'pay_type_id' => $this->order['pay_type_id'], 'method_id' => $this->order['method_id'], 'currency' => $this->order['currency'], 'game_id' => $this->order['game_id'], 'goods_type_id' => $this->order['goods_type'], 'create_time' => $this->order['create_time']); $yuanbao_list = $this->CI->payorder->get_yuanbao_amount($pay_amount_info); $update_order = array('order_sn' => $this->order['order_sn'], 'tradeseq' => $payment_result[0], 'pay_amount' => $payment_result[1], 'basic_yuanbao_amount' => $yuanbao_list[0]->yuanbao_amount, 'extra_yuanbao_amount' => $yuanbao_list[0]->yuanbao_extra, 'huodong_yuanbao_amount' => $yuanbao_list[0]->yuanbao_huodong, 'yuanbao_amount' => $yuanbao_list[0]->yuanbao_amount + $yuanbao_list[0]->yuanbao_extra + $yuanbao_list[0]->yuanbao_huodong); $log_array = array('type' => 'gameon update order', 'value' => $update_order); log_message('gash', json_encode($log_array)); $this->CI->payorder->update_order_to_get_payment($update_order); $offer_data_res = $this->offer_service($this->order['order_sn'], $this->order['game_id']); if ($offer_data_res['status']) { $offer_order['order_sn'] = $this->order['order_sn']; $this->CI->payorder->update_order_to_offer_service($offer_order); } $msg = $this->recharge_lang['recharge_success']; $this->CI->payorder->over($msg, $this->order['order_sn']); } else { //failed $return_array = array(); $return_array['status'] = false; $return_array['error_code'] = $payment_result[1]; switch ($payment_result[1]) { case '-1000': $return_array['msg'] = 'wrong ppcard length'; break; case '-100': $return_array['msg'] = 'wrong ppcard code'; break; case '-300': $return_array['msg'] = 'used ppcard'; break; case '-200': $return_array['msg'] = 'expired ppcard'; break; case '-201': $return_array['msg'] = 'wrong partnerid/pwd'; break; case '-220': $return_array['msg'] = 'wrong partner ip address'; break; case '-901': $return_array['msg'] = 'userid is empty'; break; case '-902': case '-103': case '-104': case '-105': $return_array['msg'] = $this->recharge_lang['wrong_params']; //internal error break; default: $return_array['msg'] = $this->recharge_lang['ask_to_try']; //internal error break; } $this->CI->payorder->over($return_array['msg']); } }