mStoreID; $pcode = $other['product_code']; $thrid_refill = Model('thrid_refill'); $product = $thrid_refill->getProviderProduct($store_id,$goods_id,$pcode); if(empty($product)) { Log::record("cannot find provider's produce where name={$this->mName}, goods_id = {$goods_id} pcode={$pcode}",Log::ERR); return [0,0]; } else { return [$goods_id,ncPriceFormat($product['channel_amount'])]; } } private function getProductCode($goods_id,$sys_pcode) { $thrid_refill = Model('thrid_refill'); $product = $thrid_refill->getProviderProduct($this->mStoreID,$goods_id,$sys_pcode); if (empty($product)) { return false; } else { return $product['channel_code']; } } private function req_params(string $order_sn, string $product_code,$quantity) { $params['act'] = 'lzrefill'; $params['op'] = 'add_third'; $params['product_code'] = $product_code; $params['notifyurl'] = config::NOTIFY_URL; $params['usr'] = config::USR; $params['quantity'] = $quantity; $params['ord'] = $order_sn; $params['tim'] = date("YmdHis"); $params['yysid'] = 0; $params['hmlx'] = 0; return $params; } public function add($card_no, $card_type,$amount,$params,&$net_errno = 0) { refill\util::send_normal($params['order_sn']); return [true , '',false]; } private function direct_add($card_no,$input,&$net_errno) { $order_sn = $input['order_sn']; $goods_id = intval($input['goods_id']); $product_code = $this->getProductCode($goods_id,$input['product_code']); Model('thrid_refill')->edit_third($input['order_id'], ['chcode' => $product_code]); $quantity = intval($input['quantity']); $params = $this->req_params($order_sn,$product_code,$quantity); $params['mob'] = $card_no; $params['card_type'] = $input['third_card_type'];//账号类型1 手机号,2 QQ号,3 微信号 $sign = $this->sign($params); $params['sgn'] = $sign; $resp = http_request(config::PAY_PHONE_URL,$params,'GET',false,[],$net_errno); if (empty($resp)) { return [false,'系统错误',true]; } else { Log::record($resp,Log::DEBUG); $resp = ltrim($resp , '|'); $resp = explode('|' , $resp); if (count($resp) != 3) { return [false, '返回值错误', false]; } elseif ($resp[0] == 0) { return [true, '', false]; } else { return [false, $resp[1], false]; } } } public function query($refill_info) { $params['act'] = 'lzrefill'; $params['op'] = 'query'; $params['ord'] = $refill_info['order_sn']; $params['usr'] = config::USR; $content = $params['usr'] . $params['ord'] . config::KEY; $params['sgn'] = strtoupper(md5($content)); $resp = http_request(config::QUERY_URL,$params); if (empty($resp)) { return [false,'系统错误']; } else { Log::record($resp,Log::DEBUG); $resp = ltrim($resp , '|'); $resp = explode('|' , $resp); if (count($resp) != 3) { return [false, '返回值错误']; } elseif ($resp[0] == 1) { if(!empty($resp[2])) { $result = $this->decrypt($resp[2]); if (empty($result)) { $data['ret_state'] = 2; $data['card_info'] = '查询接口,解密失败'; } else { $data['ret_state'] = 1; $data['card_info'] = $result; } Model('thrid_refill')->edit_third($refill_info['order_id'], $data); } $order_state = ORDER_STATE_SUCCESS; } elseif ($resp[0] == 2) { $order_state = ORDER_STATE_CANCEL; } elseif ($resp[0] == 0) { $order_state = ORDER_STATE_SEND; } else { return [false, $resp[0]]; } return [true, $order_state]; } } public function balance() { $params['act'] = 'lzrefill'; $params['op'] = 'balance'; $params['usr'] = config::USR; $content = $params['usr'] . config::KEY; $params['sgn'] = strtoupper(md5($content)); $resp = http_request(config::QUERY_URL,$params); if($resp === false) { return [false,'系统错误']; }else{ $resp = explode('|' , $resp); if(count($resp) != 3) { return [false,'返回值错误']; } return [true,$resp[1]]; } } private function sign($params) { $key = config::KEY; $content = $params['usr'] . $params['ord'] . $params['mob'] . $params['product_code'] . $params['tim'] . $key; return strtoupper(md5($content)); } private function decrypt($encrypt) { $ret = openssl_decrypt($encrypt, 'AES-128-CBC', config::KEY); if ($ret) { return $ret; } else { $err = openssl_error_string(); Log::record("lingzhthird query openssl_decrypt error={$err}", Log::ERR); return false; } } }