Example #1
0
 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']);
     }
 }