123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
- class lzbaseControl
- {
- private $mMchid;
- private $mAdminid;
- private $mUseKey;
- protected $merchant_available;
- protected $member_available;
- public function __construct()
- {
- $mchid = $_POST['usr'];
- $mchinfo = Model('merchant')->getMerchantInfo(['mchid' => $mchid]);
- if(empty($mchinfo)) {
- throw new LzException(self::text_content(-5,0));
- }
- else {
- $this->mAdminid = intval($mchinfo['admin_id']);
- }
- $mchinfo = Model('merchant')->getMerchantInfo(['mchid' => $mchid]);
- $mod_member = Model('member');
- $minfo = $mod_member->getMemberInfo(['member_id' => $this->mAdminid], '*', true);
- $this->merchant_available = ncPriceFormat($minfo['available_predeposit'] - $mchinfo['credit_bonus']);
- $this->member_available = $minfo['available_predeposit'];
- if ($mchinfo['merchant_state'] != 1) {
- throw new LzException(self::text_content(-7,$this->merchant_available));
- }
- $ips = unserialize($mchinfo['ip_white_list']);
- if(!empty($ips)) {
- $addr = $_SERVER['REMOTE_ADDR'];
- Log::record("request ip:{$addr}",Log::DEBUG);
- if(!in_array($addr,$ips)) {
- throw new LzException(self::text_content(-12,$this->merchant_available));
- }
- }
- $this->mUseKey = intval($mchinfo['use_key']);
- if($this->mUseKey && !$this->verify_md5($mchinfo['secure_key'])) {
- throw new LzException(self::text_content(-4,$this->merchant_available));
- }
- $this->mMchid = intval($mchid);
- }
- public function mchid() : int
- {
- return $this->mMchid;
- }
- public function adminid() : int {
- return $this->mAdminid;
- }
- private function verify_md5($key)
- {
- $input = $_GET;
- $sign = $input['sgn'];
- $body = $this->sign_body($input);
- if($this->mUseKey) {
- $body .= $key;
- }
- return ($sign == strtoupper(md5($body)));
- }
- private function sign_body($params)
- {
- $op = $params['op'];
- if($op == 'add_mob') {
- $content = $params['usr'] . $params['ord'] . $params['mob'] . $params['amt'] . $params['tim'];
- }
- elseif($op == 'balance') {
- $content = $params['usr'];
- }
- elseif($op == 'query') {
- $content = $params['usr'] . $params['ord'];
- }
- else {
- $content = 'error';
- }
- return $content;
- }
- public static function msg($code)
- {
- static $msgs = [0 => '订单提交成功',
- 2 => '运营商充值账户余额不足',
- 4 => '账户余额不足',
- 6 => '暂不支持此商品',
- 7 => '连接该运营商设备失败',
- 8 => '在规定时间内不得重复提交同一号码',
- 10 => '该帐号不能在此计算机缴费',
- 11 => '流水号重复',
- 30 => '面值不符',
- 41 => '该地区维护',
- 42 => '运营商设备忙',
- 43 => '暂不支持该面额的缴费',
- 44 => '无该地区缴费权限',
- -2 => '命令已发送,请查看交易流水是否有缴费成功(这种情况是服务器在排队等待处理,间隔10-20分钟后查单核实)',
- -3 => '数据添加失败',
- -4 => '签名错误',
- -5 => '没有此代理商',
- -6 => '提交失败',
- -7 => '无此接口权限',
- -8 => '提交日期不是当天日期',
- -9 => '参数不对',
- -11 => '手机号码位数不符',
- -12 => '绑定IP不符',
- 1001 => '销售数量请大于0',
- 1002 => '该商品库存维护',
- 1003 => '该供货商品库存维护'];
- if(array_key_exists($code,$msgs)) {
- return $msgs[$code];
- }
- else {
- return '';
- }
- }
- public static function text_content($code,$available)
- {
- $msg = self::msg($code);
- $available = ncPriceFormat($available);
- $content = "0|{$msg}|{$available}";
- return $content;
- }
- public static function outsuccess($available)
- {
- echo self::text_content(0,$available);
- return true;
- }
- public static function outerr($code,$available)
- {
- echo self::text_content($code,$available);
- return true;
- }
- }
|