Browse Source

Merge branch 'raccount' into rchannel

xiaoyu 2 years ago
parent
commit
e103fe7fdc
79 changed files with 2154 additions and 243 deletions
  1. 12 0
      admin/control/merchant.php
  2. 13 14
      admin/control/ordersendlist.php
  3. 39 27
      admin/control/refill_order_manual.php
  4. 9 0
      admin/templates/default/merchant.ctl.php
  5. 11 14
      core/framework/function/core.php
  6. 160 82
      data/config/xyz/refill.ini.php
  7. 158 79
      data/config/yl/refill.ini.php
  8. 1 1
      docker/compose/yl/conf/crontab/slave_root
  9. 6 5
      helper/refill/RefillBase.php
  10. 0 1
      helper/refill/XYZRefillFactory.php
  11. 2 0
      helper/refill/api/xyz/bier/config.php
  12. 10 0
      helper/refill/api/xyz/bier/椰子.txt
  13. 8 0
      helper/refill/api/xyz/dazhanggui/api.txt
  14. 2 0
      helper/refill/api/xyz/dazhanggui/config.php
  15. 2 0
      helper/refill/api/xyz/dezhi/config.php
  16. 7 1
      helper/refill/api/xyz/dezhi/对接文档-yezi.txt
  17. BIN
      helper/refill/api/xyz/dezhi_fs/20230415广西移动调价函.jpg
  18. 1 1
      helper/refill/api/xyz/dezhi_fs/config.php
  19. BIN
      helper/refill/api/xyz/feimingyu_fs/202304187江苏移动调价函.jpg
  20. 9 1
      helper/refill/api/xyz/feimingyu_fs/config.php
  21. 7 0
      helper/refill/api/xyz/feimingyu_fs/对接文档-yezi.txt
  22. BIN
      helper/refill/api/xyz/guochuang/20230414陕西电信调价函.jpg
  23. BIN
      helper/refill/api/xyz/guochuang/20230418辽宁移动调价函.jpg
  24. BIN
      helper/refill/api/xyz/guochuang/20230419青海福建移动调价函.jpg
  25. 6 4
      helper/refill/api/xyz/guochuang/config.php
  26. 7 1
      helper/refill/api/xyz/hanwei_fs/api.txt
  27. 7 0
      helper/refill/api/xyz/hanwei_fs/config.php
  28. 67 0
      helper/refill/api/xyz/meihan/RefillCallBack.php
  29. 155 0
      helper/refill/api/xyz/meihan/RefillPhone.php
  30. 37 0
      helper/refill/api/xyz/meihan/config.php
  31. 16 0
      helper/refill/api/xyz/meihan/商品编码.txt
  32. 14 0
      helper/refill/api/xyz/meihan/开户信息.txt
  33. 67 0
      helper/refill/api/xyz/meihan_fs/RefillCallBack.php
  34. 173 0
      helper/refill/api/xyz/meihan_fs/RefillPhone.php
  35. 137 0
      helper/refill/api/xyz/meihan_fs/config.php
  36. 81 0
      helper/refill/api/xyz/meihan_fs/商品编码.txt
  37. 14 0
      helper/refill/api/xyz/meihan_fs/开户信息.txt
  38. 1 1
      helper/refill/api/xyz/meixu/config.php
  39. 3 0
      helper/refill/api/xyz/meixu/对接文档-yezi.txt
  40. 2 0
      helper/refill/api/xyz/ruixunda/config.php
  41. 7 0
      helper/refill/api/xyz/ruixunda/对接文档-yezi.txt
  42. BIN
      helper/refill/api/xyz/ruixunda_fs/20230415江苏移动调价函.jpg
  43. 1 1
      helper/refill/api/xyz/ruixunda_fs/config.php
  44. 2 0
      helper/refill/api/xyz/weixue/config.php
  45. 6 0
      helper/refill/api/xyz/weixue/对接文档-yezi.txt
  46. 2 0
      helper/refill/api/xyz/yuewen/config.php
  47. 9 1
      helper/refill/api/xyz/yuewen/对接文档-yezi.txt
  48. 1 0
      helper/refill/api/xyz/yunchonggongfs/config.php
  49. 5 0
      helper/refill/api/xyz/ziyugui/api.txt
  50. 3 1
      helper/refill/api/xyz/ziyugui/config.php
  51. 2 0
      helper/refill/api/yl/bier/config.php
  52. 2 0
      helper/refill/api/yl/dazhanggui/config.php
  53. 2 0
      helper/refill/api/yl/dezhi/config.php
  54. 1 1
      helper/refill/api/yl/dezhi_fs/config.php
  55. 9 1
      helper/refill/api/yl/feimingyu_fs/config.php
  56. 6 4
      helper/refill/api/yl/guochuang/config.php
  57. 7 0
      helper/refill/api/yl/hanwei_fs/config.php
  58. 67 0
      helper/refill/api/yl/meihan/RefillCallBack.php
  59. 155 0
      helper/refill/api/yl/meihan/RefillPhone.php
  60. 37 0
      helper/refill/api/yl/meihan/config.php
  61. 16 0
      helper/refill/api/yl/meihan/商品编码.txt
  62. 15 0
      helper/refill/api/yl/meihan/开户信息.txt
  63. 67 0
      helper/refill/api/yl/meihan_fs/RefillCallBack.php
  64. 173 0
      helper/refill/api/yl/meihan_fs/RefillPhone.php
  65. 137 0
      helper/refill/api/yl/meihan_fs/config.php
  66. 81 0
      helper/refill/api/yl/meihan_fs/商品编码.txt
  67. 15 0
      helper/refill/api/yl/meihan_fs/开户信息.txt
  68. 2 0
      helper/refill/api/yl/ruixunda/config.php
  69. 1 1
      helper/refill/api/yl/ruixunda_fs/config.php
  70. 2 0
      helper/refill/api/yl/weixue/config.php
  71. 2 0
      helper/refill/api/yl/yuewen/config.php
  72. 1 0
      helper/refill/api/yl/yunchonggongfs/config.php
  73. 3 1
      helper/refill/api/yl/ziyugui/config.php
  74. 4 0
      mobile/callback/refill_meihan.php
  75. 4 0
      mobile/callback/refill_meihan_fs.php
  76. 2 0
      mobile/signature.php
  77. 28 0
      test/TestRefill.php
  78. 27 0
      test/TestRefillCommand.php
  79. 6 0
      test/TestRefillYl.php

+ 12 - 0
admin/control/merchant.php

@@ -1266,6 +1266,11 @@ class merchantControl extends SystemControl
             $update['retry_times_cfg'] = $retry_times_cfg;
             $update['retry_times_cfg'] = $retry_times_cfg;
             $update['transfer_cfg'] = $transfer_data();
             $update['transfer_cfg'] = $transfer_data();
 
 
+            if(!empty($_POST['ips'])) {
+                $ips = explode(',', trim($_POST['ips']));
+                if(is_array($ips))
+                $update['ip_white_list'] = serialize($ips);
+            }
             $resp = $model_merchant->editMerchant($update, ['mchid' => $mchid]);
             $resp = $model_merchant->editMerchant($update, ['mchid' => $mchid]);
             if ($resp) {
             if ($resp) {
                 $this->update_time_out($mchid);
                 $this->update_time_out($mchid);
@@ -1279,6 +1284,13 @@ class merchantControl extends SystemControl
             foreach ($qualitys as $value) {
             foreach ($qualitys as $value) {
                 $quality[$value] = $this->quality_format($value,mtopcard\ChinaMobileCard);
                 $quality[$value] = $this->quality_format($value,mtopcard\ChinaMobileCard);
             }
             }
+            if (empty($merchant['ip_white_list'])) {
+                $merchant['ips'] = '';
+            } else {
+                $ips = unserialize($merchant['ip_white_list']);
+                $merchant['ips'] = implode(',', $ips);
+            }
+
             Tpl::output('intercept', $this->merchant_intercept($merchant));
             Tpl::output('intercept', $this->merchant_intercept($merchant));
             Tpl::output('retry_times', $this->merchant_retry_times($merchant));
             Tpl::output('retry_times', $this->merchant_retry_times($merchant));
             Tpl::output('transfer_cfg', $this->transfer_cfg($merchant));
             Tpl::output('transfer_cfg', $this->transfer_cfg($merchant));

+ 13 - 14
admin/control/ordersendlist.php

@@ -544,27 +544,26 @@ class ordersendlistControl extends SystemControl
         if (empty($order_list)) {
         if (empty($order_list)) {
             showMessage('暂无数据');
             showMessage('暂无数据');
         }
         }
-        $logic_vr_order = Logic("vr_order");
-        $mod_vr_order = Model('vr_order');
-        foreach ($order_list as $order) {
+
+        foreach ($order_list as $order)
+        {
             $order_id = $order['order_id'];
             $order_id = $order['order_id'];
             if ($type == 'success') {
             if ($type == 'success') {
-                $logic_vr_order->changeOrderStateSuccess($order_id, true);
                 if (!empty($official_sn)) {
                 if (!empty($official_sn)) {
-                    $model_refill_order->edit($order_id, ['official_sn' => $official_sn]);
+                    $logic_vr_order = Logic("vr_order");
+                    $logic_vr_order->changeOrderStateSuccess($order_id, true);
+                    $model_refill_order->edit($order_id, ['official_sn' => $official_sn,'notify_state' => 1, 'notify_time' => time()]);
+                    util::pop_queue_order($order['mchid'], $order['mch_order']);
+                    QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => true]);
+                }
+                else {
+                    refill\util::manual_success($order_id);
                 }
                 }
             } elseif ($type == 'cancel') {
             } elseif ($type == 'cancel') {
-                $order_info = $mod_vr_order->getOrderInfo(['order_id' => $order_id]);
-                $logic_vr_order->changeOrderStateCancel($order_info, '', "充值失败", true, true);
-            } else {
-                continue;
-            }
-            if ($order['notify_time'] == 0) {
-                $model_refill_order->edit($order_id, ['notify_state' => 1, 'notify_time' => time()]);
+                refill\util::manual_cancel($order_id);
             }
             }
-            util::pop_queue_order($order['mchid'], $order['mch_order']);
-            QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => true]);
         }
         }
+
         $this->log("手动强制处理", 1);
         $this->log("手动强制处理", 1);
         showMessage('操作成功');
         showMessage('操作成功');
     }
     }

+ 39 - 27
admin/control/refill_order_manual.php

@@ -33,34 +33,46 @@ class refill_order_manualControl extends SystemControl
         $type = $_GET['type'];
         $type = $_GET['type'];
 
 
         $mod_order = Model('vr_order');
         $mod_order = Model('vr_order');
-        $order_info = $mod_order->getOrderInfo(['order_id' => $order_id]);
-        $mod_refill = Model('refill_order');
-        $refill_info = Model('refill_order')->getOrderInfo(['order_id' => $order_id,'inner_status' => 0,'is_retrying' => 0]);
-        if(empty($refill_info) || empty($order_info)) {
-            showMessage('订单不存在,或不符合条件', '');
-        }
-        $fetch_order_ids = $this->check_fetch_order($order_id);
-        if (in_array($order_id, $fetch_order_ids)) {
-            showMessage('此订单不可手动操作,请联系抢单人员操作!');
-        }
-        $logic_vr_order = Logic("vr_order");
-        if ($type == 'success') {
-            $logic_vr_order->changeOrderStateSuccess($order_id,true);
-        } elseif ($type == 'cancel') {
-            $logic_vr_order->changeOrderStateCancel($order_info, '', "充值失败", true, true);
-        } else {
-            showMessage('手动操作类型错误', 'index.php?act=refill_order&op=index');
-        }
-        $this->manual_record([$refill_info], $type, $order_id, '手动强制处理');
-        $this->log("手动强制处理,订单号:{$order_info['order_sn']}", 1);
+        $tran = new trans_wapper($mod_order, 'manual_success state trans');
 
 
-        if($refill_info['notify_time'] == 0) {
-            $mod_refill->edit($order_id, ['notify_state' =>1, 'notify_time' => time()]);
-        }
-        util::pop_queue_order($refill_info['mchid'],$refill_info['mch_order']);
-        QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => true]);
+        try
+        {
+            $order_info = $mod_order->getOrderInfo(['order_id' => $order_id], '*', true, true);
+            $mod_refill = Model('refill_order');
+            $refill_info = $mod_refill->getOrderInfo(['order_id' => $order_id, 'inner_status' => 0, 'is_retrying' => 0]);
+            $fetch_order_ids = $this->check_fetch_order($order_id);
 
 
-        showMessage('操作成功');
+            if (!empty($refill_info) && !empty($order_info) && !in_array($order_id, $fetch_order_ids))
+            {
+                $logic_vr_order = Logic("vr_order");
+                if ($type == 'success') {
+                    $logic_vr_order->changeOrderStateSuccess($order_id, true);
+                } elseif ($type == 'cancel') {
+                    $logic_vr_order->changeOrderStateCancel($order_info, '', "充值失败", true, true);
+                } else {
+                    $tran->commit();
+                    showMessage('手动操作类型错误');
+                }
+                $this->manual_record([$refill_info], $type, $order_id, '手动强制处理');
+                $this->log("手动强制处理,订单号:{$order_info['order_sn']}");
+
+                if ($refill_info['notify_time'] == 0) {
+                    $mod_refill->edit($order_id, ['notify_state' => 1, 'notify_time' => time()]);
+                }
+                util::pop_queue_order($refill_info['mchid'], $refill_info['mch_order']);
+                $tran->commit();
+                QueueClient::push("NotifyMerchantComplete", ['order_id' => $order_id, 'manual' => true]);
+                showMessage('操作成功');
+            } else {
+                $tran->commit();
+                showMessage('订单不存在,或不符合条件');
+            }
+        }
+        catch (Exception $ex)
+        {
+            $tran->rollback();
+            showMessage('事务失败,已经回滚.');
+        }
     }
     }
 
 
     public function refill_order_batchOp()
     public function refill_order_batchOp()
@@ -735,4 +747,4 @@ class refill_order_manualControl extends SystemControl
         $excel_obj->addWorksheet($excel_obj->charset(L('exp_od_order'), CHARSET));
         $excel_obj->addWorksheet($excel_obj->charset(L('exp_od_order'), CHARSET));
         $excel_obj->generateXML('返销导出' . date('Y-m-d-H', time()));
         $excel_obj->generateXML('返销导出' . date('Y-m-d-H', time()));
     }
     }
-}
+}

+ 9 - 0
admin/templates/default/merchant.ctl.php

@@ -437,6 +437,15 @@
                         </label>普充+卡密(<span style="color: red;"><?php echo refill\Quality::NormalCardkey; ?></span>)
                         </label>普充+卡密(<span style="color: red;"><?php echo refill\Quality::NormalCardkey; ?></span>)
                     </td>
                     </td>
                 </tr>
                 </tr>
+                <tr>
+                    <td colspan="2" class="required"><label class="validation" for="ip_white_list">IP白名单(多个用英文逗号隔开):</label></td>
+                </tr>
+                <tr class="noborder">
+                    <td class="vatop">
+                        <textarea name="ips" id="" cols="100" rows="30"><?php echo $output['merchant']['ips'];?></textarea>
+                    </td>
+                    <td class="vatop tips"></td>
+                </tr>
             </tbody>
             </tbody>
             <tfoot>
             <tfoot>
                 <tr class="tfoot">
                 <tr class="tfoot">

+ 11 - 14
core/framework/function/core.php

@@ -519,22 +519,19 @@ function Logic($model = null, $base_path = null)
         if(array_key_exists($class_name,$name_cache)) {
         if(array_key_exists($class_name,$name_cache)) {
             return new $class_name();
             return new $class_name();
         }
         }
+        elseif (!file_exists($file_name)){
+            return new Model($model);
+        }
         else
         else
         {
         {
-            if (!file_exists($file_name)){
-                return new Model($model);
-            }
-            else
-            {
-                require_once($file_name);
-
-                if (!class_exists($class_name)) {
-                    $error = 'Model Error:  Class '.$class_name.' is not exists!';
-                    throw_exception($error);
-                } else {
-                    $name_cache[$class_name] = $class_name;
-                    return new $class_name();
-                }
+            require_once($file_name);
+
+            if (!class_exists($class_name)) {
+                $error = 'Model Error:  Class '.$class_name.' is not exists!';
+                throw_exception($error);
+            } else {
+                $name_cache[$class_name] = $class_name;
+                return new $class_name();
             }
             }
         }
         }
     }
     }

+ 160 - 82
data/config/xyz/refill.ini.php

@@ -1653,32 +1653,32 @@ $hongxudagy_phone = ['name' => 'hongxudagy', 'store_id' => 86, 'qualitys' => '2'
 $yunchonggong_phone = ['name' => 'yunchonggong', 'store_id' => 87,'qualitys' => '1',
 $yunchonggong_phone = ['name' => 'yunchonggong', 'store_id' => 87,'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
-            ['goods_id' => 6797, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 6797, 'price' => 9.47, 'quality' => 1, 'card_type' => 'chinaunicom,chinatelecom']
+            ['goods_id' => 6797, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6797, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
-            ['goods_id' => 6798, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 6798, 'price' => 18.94, 'quality' => 1, 'card_type' => 'chinaunicom,chinatelecom']
+            ['goods_id' => 6798, 'price' => 19, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6798, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
-            ['goods_id' => 6799, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6799, 'price' => 29.04, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6799, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6799, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6799, 'price' => 28.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6799, 'price' => 28.65, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 6800, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6800, 'price' => 48.4, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6800, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6800, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6800, 'price' => 47.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6800, 'price' => 47.75, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 6801, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6801, 'price' => 96.8, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6801, 'price' => 94.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6801, 'price' => 94.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6801, 'price' => 95, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6801, 'price' => 96.8, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 6802, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6802, 'price' => 193.6, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6802, 'price' => 189, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6802, 'price' => 189, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6802, 'price' => 190, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6802, 'price' => 193.6, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 6803, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 6803, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -3941,34 +3941,34 @@ $cangbu_high_phone = ['name' => 'cangbu_high', 'store_id' => 168, 'qualitys' =>
 $ruixunda_phone = ['name' => 'ruixunda', 'store_id' => 169, 'qualitys' => '1',
 $ruixunda_phone = ['name' => 'ruixunda', 'store_id' => 169, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
-            ['goods_id' => 7439, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7439, 'price' => 9.48, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7439, 'price' => 9.05, 'quality' => 1, 'card_type' => 'chinaunicom'],
 //            ['goods_id' => 7439, 'price' => 9.05, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7439, 'price' => 9.45, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7439, 'price' => 9.6, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
-            ['goods_id' => 7440, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7440, 'price' => 18.96, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7440, 'price' => 18.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
 //            ['goods_id' => 7440, 'price' => 18.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7440, 'price' => 18.9, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7440, 'price' => 19.2, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
-            ['goods_id' => 7441, 'price' => 28.8, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7441, 'price' => 27.51, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7441, 'price' => 28.44, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7441, 'price' => 28.89, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7441, 'price' => 28.41, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7441, 'price' => 28.8, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 7442, 'price' => 48, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7442, 'price' => 45.85, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7442, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7442, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7442, 'price' => 47.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7442, 'price' => 48, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 7443, 'price' => 96, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7443, 'price' => 91.7, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7443, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7443, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7443, 'price' => 94.7, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7443, 'price' => 96.7, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 7444, 'price' => 192, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7444, 'price' => 183.4, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7444, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7444, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7444, 'price' => 189.4, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7444, 'price' => 193.4, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 7445, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7445, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6345,12 +6345,12 @@ $dezhi_phone = ['name' => 'dezhi', 'store_id' => 236, 'qualitys' => '1',
         10 => [
         10 => [
             ['goods_id' => 7951, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7951, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7951, 'price' => 9.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 7951, 'price' => 9.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7951, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7951, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 7952, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7952, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7952, 'price' => 18.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 7952, 'price' => 18.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7952, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7952, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 7953, 'price' => 29.04, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7953, 'price' => 29.04, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6524,31 +6524,31 @@ $ziyugui_phone = ['name' => 'ziyugui', 'store_id' => 240, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
             ['goods_id' => 7983, 'price' => 9.66, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7983, 'price' => 9.66, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 7983, 'price' => 9.44, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7983, 'price' => 9.57, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 7984, 'price' => 19.32, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7984, 'price' => 19.32, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 7984, 'price' => 18.88, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7984, 'price' => 19.14, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 7985, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7985, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7985, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7985, 'price' => 29.01, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7985, 'price' => 28.29, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7985, 'price' => 28.71, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 7986, 'price' => 48.75, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7986, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7986, 'price' => 48.35, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7986, 'price' => 48.55, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7986, 'price' => 47.15, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7986, 'price' => 47.85, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 7987, 'price' => 97.5, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7987, 'price' => 94.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7987, 'price' => 96.7, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7987, 'price' => 97.1, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7987, 'price' => 94.3, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7987, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 7988, 'price' => 195, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7988, 'price' => 189, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7988, 'price' => 193.4, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7988, 'price' => 194.2, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7988, 'price' => 188.6, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7988, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 7989, 'price' => 288.3, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7989, 'price' => 288.3, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6611,10 +6611,12 @@ $dazhanggui_phone = ['name' => 'dazhanggui', 'store_id' => 242, 'qualitys' => '1
         10 => [
         10 => [
             ['goods_id' => 7999, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7999, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7999, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinaunicom']
 //            ['goods_id' => 7999, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7999, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 8000, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8000, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 8000, 'price' => 19, 'quality' => 1, 'card_type' => 'chinaunicom']
 //            ['goods_id' => 8000, 'price' => 19, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 8000, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 8001, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8001, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6651,11 +6653,13 @@ $weixue_phone = ['name' => 'weixue', 'store_id' => 243, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
             ['goods_id' => 8007, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8007, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8007, 'price' => 9.68, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 8007, 'price' => 9.68, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8007, 'price' => 9.68, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 8008, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8008, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8008, 'price' => 19.36, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 8008, 'price' => 19.36, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8008, 'price' => 19.36, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 8009, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8009, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -7199,33 +7203,35 @@ $wanxin_phone = ['name' => 'wanxin', 'store_id' => 261, 'qualitys' => '2',
 $yuewen_phone = ['name' => 'yuewen', 'store_id' => 262, 'qualitys' => '1',
 $yuewen_phone = ['name' => 'yuewen', 'store_id' => 262, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
-            ['goods_id' => 8183, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile']
+            ['goods_id' => 8183, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8183, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         20 => [
         20 => [
-            ['goods_id' => 8184, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile']
+            ['goods_id' => 8184, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8184, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         30 => [
         30 => [
-            ['goods_id' => 8185, 'price' => 28.8, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8185, 'price' => 27.9, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8185, 'price' => 28.89, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8185, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8185, 'price' => 28.65, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8185, 'price' => 29.01, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 8186, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8186, 'price' => 46.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8186, 'price' => 48.15, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8186, 'price' => 48.75, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8186, 'price' => 47.75, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8186, 'price' => 48.35, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 8187, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8187, 'price' => 93, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8187, 'price' => 96.3, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8187, 'price' => 97.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8187, 'price' => 95.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8187, 'price' => 96.7, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 8188, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8188, 'price' => 186, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8188, 'price' => 192.6, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8188, 'price' => 195, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8188, 'price' => 191, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8188, 'price' => 193.4, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
-        300 => [['goods_id' => 8189, 'price' => 288, 'quality' => 1, 'card_type' => 'chinaunicom']],
-        500 => [['goods_id' => 8190, 'price' => 480, 'quality' => 1, 'card_type' => 'chinaunicom']]
+        300 => [['goods_id' => 8189, 'price' => 286.5, 'quality' => 1, 'card_type' => 'chinaunicom']],
+        500 => [['goods_id' => 8190, 'price' => 468.5, 'quality' => 1, 'card_type' => 'chinaunicom']]
     ],
     ],
     'official_sn' => true, 'refill_type' => 'api'];
     'official_sn' => true, 'refill_type' => 'api'];
 
 
@@ -7307,26 +7313,32 @@ $meixu_kami_phone = ['name' => 'meixu_kami', 'store_id' => 266, 'qualitys' => '2
 
 
 $bier_phone = ['name' => 'bier', 'store_id' => 267, 'qualitys' => '1',
 $bier_phone = ['name' => 'bier', 'store_id' => 267, 'qualitys' => '1',
     'amount' => [
     'amount' => [
-        10 => [['goods_id' => 8223, 'price' => 9.85, 'quality' => 1, 'card_type' => 'chinamobile']],
-        20 => [['goods_id' => 8224, 'price' => 19.7, 'quality' => 1, 'card_type' => 'chinamobile']],
+        10 => [
+            ['goods_id' => 8223, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8223, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        20 => [
+            ['goods_id' => 8224, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8224, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
         30 => [
         30 => [
             ['goods_id' => 8225, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8225, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8225, 'price' => 28.44, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8225, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8225, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8225, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
             ['goods_id' => 8226, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8226, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8226, 'price' => 47.4, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8226, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8226, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8226, 'price' => 48.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
             ['goods_id' => 8227, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8227, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8227, 'price' => 94.8, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8227, 'price' => 95, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8227, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
             ['goods_id' => 8227, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
             ['goods_id' => 8228, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8228, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8228, 'price' => 189.6, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8228, 'price' => 190, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8228, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom'],
             ['goods_id' => 8228, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
 //        300 => [['goods_id' => 8229, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile']],
 //        300 => [['goods_id' => 8229, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile']],
@@ -7524,27 +7536,33 @@ $bodian_dx_phone = ['name' => 'bodian_dx', 'store_id' => 276, 'qualitys' => '2',
 
 
 $hanwei_phone = ['name' => 'hanwei', 'store_id' => 277, 'qualitys' => '1',
 $hanwei_phone = ['name' => 'hanwei', 'store_id' => 277, 'qualitys' => '1',
     'amount' => [
     'amount' => [
-        10 => [['goods_id' => 8303, 'price' => 9.6, 'quality' => 1, 'card_type' => 'chinamobile']],
-        20 => [['goods_id' => 8304, 'price' => 19.2, 'quality' => 1, 'card_type' => 'chinamobile']],
+        10 => [
+            ['goods_id' => 8303, 'price' => 9.75, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8303, 'price' => 9.75, 'quality' => 1, 'card_type' => 'chinatelecom'],
+        ],
+        20 => [
+            ['goods_id' => 8304, 'price' => 19.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8304, 'price' => 19.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
+        ],
         30 => [
         30 => [
 //            ['goods_id' => 8305, 'price' => 28.98, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 8305, 'price' => 28.98, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8305, 'price' => 27.6, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8305, 'price' => 27.6, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8305, 'price' => 28.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8305, 'price' => 29.25, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 8306, 'price' => 48.3, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8306, 'price' => 46, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8306, 'price' => 46, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8306, 'price' => 48.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8306, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8306, 'price' => 48.75, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 8307, 'price' => 96.6, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8307, 'price' => 92, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8307, 'price' => 92, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8307, 'price' => 97, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8307, 'price' => 94, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8307, 'price' => 98, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 8308, 'price' => 193.2, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8308, 'price' => 184, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8308, 'price' => 184, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8308, 'price' => 194, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8308, 'price' => 188, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8308, 'price' => 196, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 8309, 'price' => 267, 'quality' => 1, 'card_type' => 'chinaunicom']
 //            ['goods_id' => 8309, 'price' => 267, 'quality' => 1, 'card_type' => 'chinaunicom']
@@ -8497,6 +8515,64 @@ $dezhi_yi_phone = ['name' => 'dezhi_yi', 'store_id' => 310, 'qualitys' => '3',
     ],
     ],
     'official_sn' => true, 'refill_type' => 'api'];
     'official_sn' => true, 'refill_type' => 'api'];
 
 
+$meihan_phone = ['name' => 'meihan', 'store_id' => 311, 'qualitys' => '1',
+    'amount' => [
+//        10 => [
+//            ['goods_id' => 8561, 'price' => 10.01, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8561, 'price' => 10.01, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8561, 'price' => 10.01, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ],
+//        20 => [
+//            ['goods_id' => 8562, 'price' => 20.02, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8562, 'price' => 20.02, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8562, 'price' => 20.02, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ],
+        30 => [
+//            ['goods_id' => 8563, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8563, 'price' => 28.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8563, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        50 => [
+            ['goods_id' => 8564, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8564, 'price' => 47, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8564, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        100 => [
+            ['goods_id' => 8565, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8565, 'price' => 94, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8565, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        200 => [
+            ['goods_id' => 8566, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8566, 'price' => 188, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8566, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+//        300 => [
+//            ['goods_id' => 8567, 'price' => 300.15, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8567, 'price' => 300.15, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8567, 'price' => 300.15, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ],
+//        500 => [
+//            ['goods_id' => 8568, 'price' => 500.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8568, 'price' => 500.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8568, 'price' => 500.25, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ]
+    ],
+    'official_sn' => true, 'refill_type' => 'api'];
+
+$meihan_fs_phone = ['name' => 'meihan_fs', 'store_id' => 312, 'qualitys' => '1',
+    'amount' => [
+//        10 => [['goods_id' => 8569, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinatelecom']],
+//        20 => [['goods_id' => 8570, 'price' => 19, 'quality' => 1, 'card_type' => 'chinatelecom']],
+        30 => [['goods_id' => 8571, 'price' => 28.5, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+        50 => [['goods_id' => 8572, 'price' => 47.5, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+        100 => [['goods_id' => 8573, 'price' => 95, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+        200 => [['goods_id' => 8574, 'price' => 190, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+//        300 => [['goods_id' => 8575, 'price' => 285, 'quality' => 1, 'card_type' => 'chinatelecom']],
+//        500 => [['goods_id' => 8576, 'price' => 475, 'quality' => 1, 'card_type' => 'chinatelecom']]
+    ],
+    'official_sn' => true, 'refill_type' => 'api'];
+
 $phone_providers = [
 $phone_providers = [
 //    ['name' => 'beixt', 'cfg' => $beixt_phone],
 //    ['name' => 'beixt', 'cfg' => $beixt_phone],
 //    ['name' => 'bxtwt', 'cfg' => $bxtwt_phone],
 //    ['name' => 'bxtwt', 'cfg' => $bxtwt_phone],
@@ -8760,6 +8836,8 @@ $phone_providers = [
     ['name' => 'yunhui', 'cfg' => $yunhui_phone],
     ['name' => 'yunhui', 'cfg' => $yunhui_phone],
     ['name' => 'yelin_tax', 'cfg' => $yelin_tax_phone],
     ['name' => 'yelin_tax', 'cfg' => $yelin_tax_phone],
     ['name' => 'dezhi_yi', 'cfg' => $dezhi_yi_phone],
     ['name' => 'dezhi_yi', 'cfg' => $dezhi_yi_phone],
+    ['name' => 'meihan', 'cfg' => $meihan_phone],
+    ['name' => 'meihan_fs', 'cfg' => $meihan_fs_phone],
 
 
 ];
 ];
 $config['phone_providers'] = $phone_providers;
 $config['phone_providers'] = $phone_providers;

+ 158 - 79
data/config/yl/refill.ini.php

@@ -1661,32 +1661,32 @@ $hongxudagy_phone = ['name' => 'hongxudagy', 'store_id' => 86, 'qualitys' => '2'
 $yunchonggong_phone = ['name' => 'yunchonggong', 'store_id' => 87,'qualitys' => '1',
 $yunchonggong_phone = ['name' => 'yunchonggong', 'store_id' => 87,'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
-            ['goods_id' => 6797, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 6797, 'price' => 9.47, 'quality' => 1, 'card_type' => 'chinaunicom,chinatelecom']
+            ['goods_id' => 6797, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6797, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
-            ['goods_id' => 6798, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 6798, 'price' => 18.94, 'quality' => 1, 'card_type' => 'chinaunicom,chinatelecom']
+            ['goods_id' => 6798, 'price' => 19, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6798, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
-            ['goods_id' => 6799, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6799, 'price' => 29.04, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6799, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6799, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6799, 'price' => 28.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6799, 'price' => 28.65, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 6800, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6800, 'price' => 48.4, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6800, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6800, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6800, 'price' => 47.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6800, 'price' => 47.75, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 6801, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6801, 'price' => 96.8, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6801, 'price' => 94.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6801, 'price' => 94.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6801, 'price' => 95, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6801, 'price' => 96.8, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 6802, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 6802, 'price' => 193.6, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 6802, 'price' => 189, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 6802, 'price' => 189, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 6802, 'price' => 190, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 6802, 'price' => 193.6, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 6803, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 6803, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -3949,34 +3949,34 @@ $cangbu_high_phone = ['name' => 'cangbu_high', 'store_id' => 168, 'qualitys' =>
 $ruixunda_phone = ['name' => 'ruixunda', 'store_id' => 169, 'qualitys' => '1',
 $ruixunda_phone = ['name' => 'ruixunda', 'store_id' => 169, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
-            ['goods_id' => 7439, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7439, 'price' => 9.48, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7439, 'price' => 9.05, 'quality' => 1, 'card_type' => 'chinaunicom'],
 //            ['goods_id' => 7439, 'price' => 9.05, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7439, 'price' => 9.45, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7439, 'price' => 9.6, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
-            ['goods_id' => 7440, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7440, 'price' => 18.96, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7440, 'price' => 18.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
 //            ['goods_id' => 7440, 'price' => 18.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7440, 'price' => 18.9, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7440, 'price' => 19.2, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
-            ['goods_id' => 7441, 'price' => 28.8, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7441, 'price' => 27.51, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7441, 'price' => 28.44, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7441, 'price' => 28.89, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7441, 'price' => 28.41, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7441, 'price' => 28.8, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 7442, 'price' => 48, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7442, 'price' => 45.85, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7442, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7442, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7442, 'price' => 47.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7442, 'price' => 48, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 7443, 'price' => 96, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7443, 'price' => 91.7, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7443, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7443, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7443, 'price' => 94.7, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7443, 'price' => 96.7, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 7444, 'price' => 192, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7444, 'price' => 183.4, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7444, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7444, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7444, 'price' => 189.4, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7444, 'price' => 193.4, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 7445, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7445, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6118,12 +6118,12 @@ $dezhi_phone = ['name' => 'dezhi', 'store_id' => 227, 'qualitys' => '1',
         10 => [
         10 => [
             ['goods_id' => 7906, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7906, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7906, 'price' => 9.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 7906, 'price' => 9.1, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7906, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7906, 'price' => 9.55, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 7907, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7907, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7907, 'price' => 18.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 7907, 'price' => 18.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
-//            ['goods_id' => 7907, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinatelecom']
+            ['goods_id' => 7907, 'price' => 19.1, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 7908, 'price' => 29.04, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7908, 'price' => 29.04, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6253,31 +6253,31 @@ $ziyugui_phone = ['name' => 'ziyugui', 'store_id' => 231, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
             ['goods_id' => 7931, 'price' => 9.66, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7931, 'price' => 9.66, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 7931, 'price' => 9.44, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7931, 'price' => 9.57, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 7932, 'price' => 19.32, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7932, 'price' => 19.32, 'quality' => 1, 'card_type' => 'chinamobile'],
-//            ['goods_id' => 7932, 'price' => 18.88, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7932, 'price' => 19.14, 'quality' => 1, 'card_type' => 'chinatelecom']
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 7933, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7933, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7933, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7933, 'price' => 29.01, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7933, 'price' => 28.29, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7933, 'price' => 28.71, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 7934, 'price' => 48.75, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7934, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7934, 'price' => 48.35, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7934, 'price' => 48.55, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7934, 'price' => 47.15, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7934, 'price' => 47.85, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 7935, 'price' => 97.5, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7935, 'price' => 94.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7935, 'price' => 96.7, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7935, 'price' => 97.1, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7935, 'price' => 94.3, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7935, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 7936, 'price' => 195, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7936, 'price' => 189, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 7936, 'price' => 193.4, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 7936, 'price' => 194.2, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 7936, 'price' => 188.6, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7936, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 7937, 'price' => 288.3, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7937, 'price' => 288.3, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6340,10 +6340,12 @@ $dazhanggui_phone = ['name' => 'dazhanggui', 'store_id' => 233, 'qualitys' => '1
         10 => [
         10 => [
             ['goods_id' => 7947, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7947, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7947, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinaunicom']
 //            ['goods_id' => 7947, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7947, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 7948, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7948, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 7948, 'price' => 19, 'quality' => 1, 'card_type' => 'chinaunicom']
 //            ['goods_id' => 7948, 'price' => 19, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7948, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 7949, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7949, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6425,11 +6427,13 @@ $weixue_phone = ['name' => 'weixue', 'store_id' => 235, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
             ['goods_id' => 7963, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7963, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7963, 'price' => 9.68, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7963, 'price' => 9.68, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7963, 'price' => 9.68, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         20 => [
         20 => [
             ['goods_id' => 7964, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7964, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 7964, 'price' => 19.36, 'quality' => 1, 'card_type' => 'chinaunicom']
+            ['goods_id' => 7964, 'price' => 19.36, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 7964, 'price' => 19.36, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         30 => [
         30 => [
             ['goods_id' => 7965, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 7965, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
@@ -6809,26 +6813,32 @@ $qianqian_fs_gd_phone = ['name' => 'qianqian_fs_gd', 'store_id' => 250, 'quality
 
 
 $bier_phone = ['name' => 'bier', 'store_id' => 251, 'qualitys' => '1',
 $bier_phone = ['name' => 'bier', 'store_id' => 251, 'qualitys' => '1',
     'amount' => [
     'amount' => [
-        10 => [['goods_id' => 8091, 'price' => 9.85, 'quality' => 1, 'card_type' => 'chinamobile']],
-        20 => [['goods_id' => 8092, 'price' => 19.7, 'quality' => 1, 'card_type' => 'chinamobile']],
+        10 => [
+            ['goods_id' => 8091, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8091, 'price' => 9.7, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        20 => [
+            ['goods_id' => 8092, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8092, 'price' => 19.4, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
         30 => [
         30 => [
             ['goods_id' => 8093, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8093, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8093, 'price' => 28.44, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8093, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8093, 'price' => 28.35, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8093, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
             ['goods_id' => 8094, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8094, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8094, 'price' => 47.4, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8094, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8094, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8094, 'price' => 48.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
             ['goods_id' => 8095, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8095, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8095, 'price' => 94.8, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8095, 'price' => 95, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8095, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
             ['goods_id' => 8095, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
             ['goods_id' => 8096, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8096, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8096, 'price' => 189.6, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8096, 'price' => 190, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8096, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom'],
             ['goods_id' => 8096, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
 //        300 => [['goods_id' => 8097, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile']],
 //        300 => [['goods_id' => 8097, 'price' => 288, 'quality' => 1, 'card_type' => 'chinamobile']],
@@ -6927,27 +6937,33 @@ $feimingyu_fs_phone = ['name' => 'feimingyu_fs', 'store_id' => 256, 'qualitys' =
 
 
 $hanwei_phone = ['name' => 'hanwei', 'store_id' => 258, 'qualitys' => '1',
 $hanwei_phone = ['name' => 'hanwei', 'store_id' => 258, 'qualitys' => '1',
     'amount' => [
     'amount' => [
-        10 => [['goods_id' => 8145, 'price' => 9.6, 'quality' => 1, 'card_type' => 'chinamobile']],
-        20 => [['goods_id' => 8146, 'price' => 19.2, 'quality' => 1, 'card_type' => 'chinamobile']],
+        10 => [
+            ['goods_id' => 8145, 'price' => 9.75, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8145, 'price' => 9.75, 'quality' => 1, 'card_type' => 'chinatelecom'],
+        ],
+        20 => [
+            ['goods_id' => 8146, 'price' => 19.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8146, 'price' => 19.5, 'quality' => 1, 'card_type' => 'chinatelecom'],
+        ],
         30 => [
         30 => [
 //            ['goods_id' => 8147, 'price' => 28.98, 'quality' => 1, 'card_type' => 'chinamobile'],
 //            ['goods_id' => 8147, 'price' => 28.98, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8147, 'price' => 28.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8147, 'price' => 28.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8147, 'price' => 28.2, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8147, 'price' => 29.25, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 8148, 'price' => 48.3, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8148, 'price' => 47, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8148, 'price' => 47, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8148, 'price' => 48.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8148, 'price' => 47.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8148, 'price' => 48.75, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 8149, 'price' => 96.6, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8149, 'price' => 97, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8149, 'price' => 94, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8149, 'price' => 94, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8149, 'price' => 94, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8149, 'price' => 98, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 8150, 'price' => 193.2, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8150, 'price' => 194, 'quality' => 1, 'card_type' => 'chinamobile'],
             ['goods_id' => 8150, 'price' => 188, 'quality' => 1, 'card_type' => 'chinaunicom'],
             ['goods_id' => 8150, 'price' => 188, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8150, 'price' => 188, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8150, 'price' => 186, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
 //        300 => [
 //        300 => [
 //            ['goods_id' => 8151, 'price' => 267, 'quality' => 1, 'card_type' => 'chinaunicom']
 //            ['goods_id' => 8151, 'price' => 267, 'quality' => 1, 'card_type' => 'chinaunicom']
@@ -6974,33 +6990,35 @@ $hanwei_fs_phone = ['name' => 'hanwei_fs', 'store_id' => 259, 'qualitys' => '1',
 $yuewen_phone = ['name' => 'yuewen', 'store_id' => 260, 'qualitys' => '1',
 $yuewen_phone = ['name' => 'yuewen', 'store_id' => 260, 'qualitys' => '1',
     'amount' => [
     'amount' => [
         10 => [
         10 => [
-            ['goods_id' => 8161, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile']
+            ['goods_id' => 8161, 'price' => 9.65, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8161, 'price' => 9.67, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         20 => [
         20 => [
-            ['goods_id' => 8162, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile']
+            ['goods_id' => 8162, 'price' => 19.3, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8162, 'price' => 19.34, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         30 => [
         30 => [
-            ['goods_id' => 8163, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8163, 'price' => 27.9, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8163, 'price' => 28.89, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8163, 'price' => 29.1, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8163, 'price' => 28.65, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8163, 'price' => 29.01, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         50 => [
         50 => [
-            ['goods_id' => 8164, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8164, 'price' => 46.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8164, 'price' => 48.15, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8164, 'price' => 48.75, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8164, 'price' => 47.75, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8164, 'price' => 48.35, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         100 => [
         100 => [
-            ['goods_id' => 8165, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8165, 'price' => 93, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8165, 'price' => 96.3, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8165, 'price' => 97.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8165, 'price' => 95.5, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8165, 'price' => 96.7, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
         200 => [
         200 => [
-            ['goods_id' => 8166, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
-            ['goods_id' => 8166, 'price' => 186, 'quality' => 1, 'card_type' => 'chinaunicom'],
-            ['goods_id' => 8166, 'price' => 192.6, 'quality' => 1, 'card_type' => 'chinatelecom'],
+            ['goods_id' => 8166, 'price' => 195, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8166, 'price' => 191, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8166, 'price' => 193.4, 'quality' => 1, 'card_type' => 'chinatelecom'],
         ],
         ],
-        300 => [['goods_id' => 8167, 'price' => 288, 'quality' => 1, 'card_type' => 'chinaunicom']],
-        500 => [['goods_id' => 8168, 'price' => 480, 'quality' => 1, 'card_type' => 'chinaunicom']]
+        300 => [['goods_id' => 8167, 'price' => 286.5, 'quality' => 1, 'card_type' => 'chinaunicom']],
+        500 => [['goods_id' => 8168, 'price' => 468.5, 'quality' => 1, 'card_type' => 'chinaunicom']]
     ],
     ],
     'official_sn' => true, 'refill_type' => 'api'];
     'official_sn' => true, 'refill_type' => 'api'];
 
 
@@ -7106,6 +7124,64 @@ $siyicheng_phone = ['name' => 'siyicheng', 'store_id' => 265, 'qualitys' => '1',
     ],
     ],
     'official_sn' => true, 'refill_type' => 'api'];
     'official_sn' => true, 'refill_type' => 'api'];
 
 
+$meihan_phone = ['name' => 'meihan', 'store_id' => 266, 'qualitys' => '1',
+    'amount' => [
+//        10 => [
+//            ['goods_id' => 8202, 'price' => 10.01, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8202, 'price' => 10.01, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8202, 'price' => 10.01, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ],
+//        20 => [
+//            ['goods_id' => 8203, 'price' => 20.02, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8203, 'price' => 20.02, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8203, 'price' => 20.02, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ],
+        30 => [
+//            ['goods_id' => 8204, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8204, 'price' => 28.2, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8204, 'price' => 28.95, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        50 => [
+            ['goods_id' => 8205, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8205, 'price' => 47, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8205, 'price' => 48.25, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        100 => [
+            ['goods_id' => 8206, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8206, 'price' => 94, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8206, 'price' => 96.5, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+        200 => [
+            ['goods_id' => 8207, 'price' => 193, 'quality' => 1, 'card_type' => 'chinamobile'],
+            ['goods_id' => 8207, 'price' => 188, 'quality' => 1, 'card_type' => 'chinaunicom'],
+            ['goods_id' => 8207, 'price' => 193, 'quality' => 1, 'card_type' => 'chinatelecom']
+        ],
+//        300 => [
+//            ['goods_id' => 8208, 'price' => 300.15, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8208, 'price' => 300.15, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8208, 'price' => 300.15, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ],
+//        500 => [
+//            ['goods_id' => 8209, 'price' => 500.25, 'quality' => 1, 'card_type' => 'chinamobile'],
+//            ['goods_id' => 8209, 'price' => 500.25, 'quality' => 1, 'card_type' => 'chinaunicom'],
+//            ['goods_id' => 8209, 'price' => 500.25, 'quality' => 1, 'card_type' => 'chinatelecom']
+//        ]
+    ],
+    'official_sn' => true, 'refill_type' => 'api'];
+
+$meihan_fs_phone = ['name' => 'meihan_fs', 'store_id' => 267, 'qualitys' => '1',
+    'amount' => [
+//        10 => [['goods_id' => 8210, 'price' => 9.5, 'quality' => 1, 'card_type' => 'chinatelecom']],
+//        20 => [['goods_id' => 8211, 'price' => 19, 'quality' => 1, 'card_type' => 'chinatelecom']],
+        30 => [['goods_id' => 8212, 'price' => 28.5, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+        50 => [['goods_id' => 8213, 'price' => 47.5, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+        100 => [['goods_id' => 8214, 'price' => 95, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+        200 => [['goods_id' => 8215, 'price' => 190, 'quality' => 1, 'card_type' => 'chinamobile, chinatelecom']],
+//        300 => [['goods_id' => 8216, 'price' => 285, 'quality' => 1, 'card_type' => 'chinatelecom']],
+//        500 => [['goods_id' => 8217, 'price' => 475, 'quality' => 1, 'card_type' => 'chinatelecom']]
+    ],
+    'official_sn' => true, 'refill_type' => 'api'];
+
 $phone_providers = [
 $phone_providers = [
 //    ['name' => 'beixt', 'cfg' => $beixt_phone],
 //    ['name' => 'beixt', 'cfg' => $beixt_phone],
 //    ['name' => 'bxtwt', 'cfg' => $bxtwt_phone],
 //    ['name' => 'bxtwt', 'cfg' => $bxtwt_phone],
@@ -7330,6 +7406,9 @@ $phone_providers = [
     ['name' => 'jiaqi', 'cfg' => $jiaqi_phone],
     ['name' => 'jiaqi', 'cfg' => $jiaqi_phone],
     ['name' => 'jiaqi_fs', 'cfg' => $jiaqi_fs_phone],
     ['name' => 'jiaqi_fs', 'cfg' => $jiaqi_fs_phone],
     ['name' => 'siyicheng', 'cfg' => $siyicheng_phone],
     ['name' => 'siyicheng', 'cfg' => $siyicheng_phone],
+    ['name' => 'meihan', 'cfg' => $meihan_phone],
+    ['name' => 'meihan_fs', 'cfg' => $meihan_fs_phone],
+
 ];
 ];
 $config['phone_providers'] = $phone_providers;
 $config['phone_providers'] = $phone_providers;
 
 

+ 1 - 1
docker/compose/yl/conf/crontab/slave_root

@@ -1,7 +1,7 @@
 # do daily/weekly/monthly maintenance
 # do daily/weekly/monthly maintenance
 # min	hour	day	month	weekday	command
 # min	hour	day	month	weekday	command
 */1    *   *   *   *   php /var/www/html/crontab/index.php minutes update_channel_balance
 */1    *   *   *   *   php /var/www/html/crontab/index.php minutes update_channel_balance
-0   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
+20   1   *   *   *   php /var/www/html/crontab/index.php date refill_clear
 0   23   *   *   *   php /var/www/html/crontab/index.php date merchant_nightime
 0   23   *   *   *   php /var/www/html/crontab/index.php date merchant_nightime
 0   7    *   *   *   php /var/www/html/crontab/index.php date merchant_daytime
 0   7    *   *   *   php /var/www/html/crontab/index.php date merchant_daytime
 0   0    *   *   *  php /var/www/html/crontab/index.php date merchant_available
 0   0    *   *   *  php /var/www/html/crontab/index.php date merchant_available

+ 6 - 5
helper/refill/RefillBase.php

@@ -889,14 +889,15 @@ class RefillBase
         $order_id = intval($order_id);
         $order_id = intval($order_id);
         if($order_id <= 0) return false;
         if($order_id <= 0) return false;
 
 
-        try {
+        try
+        {
             $mod_order = Model('vr_order');
             $mod_order = Model('vr_order');
             $tran = new trans_wapper($mod_order,'manual_success state trans');
             $tran = new trans_wapper($mod_order,'manual_success state trans');
 
 
             $order_info = $mod_order->getOrderInfo(['order_id' => $order_id],'*',true,true);
             $order_info = $mod_order->getOrderInfo(['order_id' => $order_id],'*',true,true);
-            if(!empty($order_info) && $order_info['order_state'] == ORDER_STATE_SEND) {
+            if(!empty($order_info) && in_array($order_info['order_state'],[ORDER_STATE_PAY,ORDER_STATE_SEND]))
+            {
                 $tran->commit();
                 $tran->commit();
-
                 $logic_vr_order = Logic("vr_order");
                 $logic_vr_order = Logic("vr_order");
                 $logic_vr_order->changeOrderStateSuccess($order_id,true);
                 $logic_vr_order->changeOrderStateSuccess($order_id,true);
 
 
@@ -908,7 +909,6 @@ class RefillBase
                 $mod_refill->partition(util::part_refill($order_time))->edit($order_id, ['notify_time' => time(), 'notify_state' => 1,'is_retrying' => 0]);
                 $mod_refill->partition(util::part_refill($order_time))->edit($order_id, ['notify_time' => time(), 'notify_state' => 1,'is_retrying' => 0]);
                 mtopcard\cards_helper::assign($order_id);
                 mtopcard\cards_helper::assign($order_id);
 
 
-
                 util::pop_queue_order($refill_info['mchid'], $refill_info['mch_order'], $order_time);
                 util::pop_queue_order($refill_info['mchid'], $refill_info['mch_order'], $order_time);
             }
             }
             else {
             else {
@@ -935,7 +935,8 @@ class RefillBase
             $tran = new trans_wapper($mod_order,'manual_cancel state trans');
             $tran = new trans_wapper($mod_order,'manual_cancel state trans');
 
 
             $order_info = $mod_order->getOrderInfo(['order_id' => $order_id],'*',true,true);
             $order_info = $mod_order->getOrderInfo(['order_id' => $order_id],'*',true,true);
-            if(!empty($order_info) && $order_info['order_state'] == ORDER_STATE_SEND) {
+            if(!empty($order_info) && in_array($order_info['order_state'],[ORDER_STATE_PAY,ORDER_STATE_SEND]))
+            {
                 $tran->commit();
                 $tran->commit();
 
 
                 $logic_vr_order = Logic("vr_order");
                 $logic_vr_order = Logic("vr_order");

+ 0 - 1
helper/refill/XYZRefillFactory.php

@@ -38,7 +38,6 @@ require_once(BASE_HELPER_PATH . '/refill/policy/interceptor.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/transfer.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/transfer.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/mchannel.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/mchannel.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/third_helper.php');
 require_once(BASE_HELPER_PATH . '/refill/policy/third_helper.php');
-
 require_once(BASE_HELPER_PATH . '/refill/functional.php');
 require_once(BASE_HELPER_PATH . '/refill/functional.php');
 require_once(BASE_HELPER_PATH . '/refill/chprice_helper.php');
 require_once(BASE_HELPER_PATH . '/refill/chprice_helper.php');
 
 

+ 2 - 0
helper/refill/api/xyz/bier/config.php

@@ -34,6 +34,8 @@ class config
             200 => 'CUCCALLr200r',
             200 => 'CUCCALLr200r',
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
+            10 => 'CTCCALLr10r',
+            20 => 'CTCCALLr20r',
             30 => 'CTCCALLr30r',
             30 => 'CTCCALLr30r',
             50 => 'CTCCALLr50r',
             50 => 'CTCCALLr50r',
             100 => 'CTCCALLr100r',
             100 => 'CTCCALLr100r',

+ 10 - 0
helper/refill/api/xyz/bier/椰子.txt

@@ -41,3 +41,13 @@ CTCCALLr30r
 CTCCALLr50r
 CTCCALLr50r
 CTCCALLr100r
 CTCCALLr100r
 CTCCALLr200r
 CTCCALLr200r
+
+2023.4.19
+
+比尔
+全国电信小面值
+
+10  CTCCALLr10r
+20  CTCCALLr20r
+30  CTCCALLr30r
+50  CTCCALLr50r

+ 8 - 0
helper/refill/api/xyz/dazhanggui/api.txt

@@ -33,3 +33,11 @@
 2023.3.13
 2023.3.13
 1000010    全国移动10元
 1000010    全国移动10元
 1000020    全国移动20元
 1000020    全国移动20元
+
+2023.4.16
+大掌柜    全国电信10-50调价函
+编码
+全国电信10元   3000010
+全国电信20元   3000020
+全国电信30元   3000030
+全国电信50元   3000050

+ 2 - 0
helper/refill/api/xyz/dazhanggui/config.php

@@ -44,6 +44,8 @@ class config
             500 => 2000500,
             500 => 2000500,
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
+            10  => 3000010,
+            20  => 3000020,
             30  => 3000030,
             30  => 3000030,
             50  => 3000050,
             50  => 3000050,
             100 => 3000100,
             100 => 3000100,

+ 2 - 0
helper/refill/api/xyz/dezhi/config.php

@@ -47,6 +47,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 7 - 1
helper/refill/api/xyz/dezhi/对接文档-yezi.txt

@@ -40,4 +40,10 @@ http://124.70.214.140:9086/searchbalance.do
 德智   全国移动10,20面值调价函
 德智   全国移动10,20面值调价函
 编码
 编码
 101685   全国移动话费10元直充
 101685   全国移动话费10元直充
-101686   全国移动话费20元直充
+101686   全国移动话费20元直充
+
+2023.4.16
+101721 全国电信话费10元直充
+101722 全国电信话费20元直充
+101723 全国电信话费30元直充
+101724 全国电信话费50元直充

BIN
helper/refill/api/xyz/dezhi_fs/20230415广西移动调价函.jpg


+ 1 - 1
helper/refill/api/xyz/dezhi_fs/config.php

@@ -34,7 +34,7 @@ class config
         "4-30-25" => 28.44, "4-50-25" => 46.75, "4-100-25" => 93.5, "4-200-25" => 187,//云南 25
         "4-30-25" => 28.44, "4-50-25" => 46.75, "4-100-25" => 93.5, "4-200-25" => 187,//云南 25
         "4-50-16" => 46.9, "4-100-16" => 93.8, "4-200-16" => 187.6,//河南 16
         "4-50-16" => 46.9, "4-100-16" => 93.8, "4-200-16" => 187.6,//河南 16
         "4-50-3" => 47.1, "4-100-3" => 94.2, "4-200-3" => 188.4,//河北 3
         "4-50-3" => 47.1, "4-100-3" => 94.2, "4-200-3" => 188.4,//河北 3
-        "4-50-20" => 46.75, "4-100-20" => 93.5, "4-200-20" => 187,//广西 20
+        "4-30-20" => 28.41, "4-50-20" => 47.35, "4-100-20" => 94.7, "4-200-20" => 189.4,//广西 20
         "4-30-23" => 28.26, "4-50-23" => 47.1, "4-100-23" => 94.2, "4-200-23" => 188.4,//四川 23
         "4-30-23" => 28.26, "4-50-23" => 47.1, "4-100-23" => 94.2, "4-200-23" => 188.4,//四川 23
         "4-50-11" => 47.75, "4-100-11" => 95.5, "4-200-11" => 191,//浙江 11
         "4-50-11" => 47.75, "4-100-11" => 95.5, "4-200-11" => 191,//浙江 11
         "4-50-14" => 46.8, "4-100-14" => 93.6, "4-200-14" => 187.2,//江西 14
         "4-50-14" => 46.8, "4-100-14" => 93.6, "4-200-14" => 187.2,//江西 14

BIN
helper/refill/api/xyz/feimingyu_fs/202304187江苏移动调价函.jpg


+ 9 - 1
helper/refill/api/xyz/feimingyu_fs/config.php

@@ -68,6 +68,13 @@ class config
                 100 => 331118,
                 100 => 331118,
                 200 => 30000000790,
                 200 => 30000000790,
             ],
             ],
+            //江西
+            14 => [
+                30  => 31768,
+                50  => 31769,
+                100 => 31770,
+                200 => 317623,
+            ],
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
             //广东
             //广东
@@ -117,7 +124,8 @@ class config
         "4-30-20" => 28.2, "4-50-20" => 47, "4-100-20" => 94, "4-200-20" => 188,//广西 20
         "4-30-20" => 28.2, "4-50-20" => 47, "4-100-20" => 94, "4-200-20" => 188,//广西 20
         "4-30-13" => 28.2, "4-50-13" => 47, "4-100-13" => 94, "4-200-13" => 188,//福建 13
         "4-30-13" => 28.2, "4-50-13" => 47, "4-100-13" => 94, "4-200-13" => 188,//福建 13
         "4-30-24" => 27.6, "4-50-24" => 46, "4-100-24" => 92, "4-200-24" => 184,//贵州 24
         "4-30-24" => 27.6, "4-50-24" => 46, "4-100-24" => 92, "4-200-24" => 184,//贵州 24
-        "4-30-10" => 28.89, "4-50-10" => 48.15, "4-100-10" => 96.3, "4-200-10" => 192.6,//江苏 10
+        "4-30-10" => 28.59, "4-50-10" => 47.65, "4-100-10" => 95.3, "4-200-10" => 190.6,//江苏 10
+        "4-30-14" => 27.6, "4-50-14" => 46, "4-100-14" => 92, "4-200-14" => 184,//江西 14
 
 
         //电信
         //电信
         "6-30-19" => 28.05, "6-50-19" => 46.75, "6-100-19" => 93.5, "6-200-19" => 187,//广东 19
         "6-30-19" => 28.05, "6-50-19" => 46.75, "6-100-19" => 93.5, "6-200-19" => 187,//广东 19

+ 7 - 0
helper/refill/api/xyz/feimingyu_fs/对接文档-yezi.txt

@@ -78,3 +78,10 @@ http://121.36.242.90:9086/searchpay.do
 江苏移动50元  331117
 江苏移动50元  331117
 江苏移动100元 331118
 江苏移动100元 331118
 江苏移动200元 30000000790
 江苏移动200元 30000000790
+
+2023.4.17
+茹隆江西移动配置函,
+31768  江西移动30元直充
+31769   江西移动50元直充
+31770   江西移动100元直充
+317623  江西移动200元直充

BIN
helper/refill/api/xyz/guochuang/20230414陕西电信调价函.jpg


BIN
helper/refill/api/xyz/guochuang/20230418辽宁移动调价函.jpg


BIN
helper/refill/api/xyz/guochuang/20230419青海福建移动调价函.jpg


+ 6 - 4
helper/refill/api/xyz/guochuang/config.php

@@ -64,12 +64,12 @@ class config
     const Price = [
     const Price = [
         //移动
         //移动
         "4-10-2" => 10.18, "4-20-2" => 20.36, "4-30-2" => 30.18, "4-50-2" => 50.3, "4-100-2" => 100.3, "4-200-2" => 200.6, "4-300-2" => 300.9, "4-500-2" => 501.5,//天津 2
         "4-10-2" => 10.18, "4-20-2" => 20.36, "4-30-2" => 30.18, "4-50-2" => 50.3, "4-100-2" => 100.3, "4-200-2" => 200.6, "4-300-2" => 300.9, "4-500-2" => 501.5,//天津 2
-        "4-10-6" => 9.7, "4-20-6" => 19.4, "4-30-6" => 29.1, "4-50-6" => 48.5, "4-100-6" => 97, "4-200-6" => 194, "4-300-6" => 291, "4-500-6" => 485,//辽宁 6
+        "4-10-6" => 9.69, "4-20-6" => 19.38, "4-30-6" => 29.07, "4-50-6" => 48.45, "4-100-6" => 96.9, "4-200-6" => 193.8, "4-300-6" => 290.7, "4-500-6" => 484.5,//辽宁 6
         "4-10-9" => 9.94, "4-20-9" => 19.88, "4-30-9" => 29.82, "4-50-9" => 49.7, "4-100-9" => 99.4,//上海 9
         "4-10-9" => 9.94, "4-20-9" => 19.88, "4-30-9" => 29.82, "4-50-9" => 49.7, "4-100-9" => 99.4,//上海 9
         "4-10-8" => 9.98, "4-20-8" => 19.96, "4-30-8" => 29.94, "4-50-8" => 49.9, "4-100-8" => 99.8, "4-200-8" => 199.6, "4-300-8" => 299.4, "4-500-8" => 499,//黑龙江 8
         "4-10-8" => 9.98, "4-20-8" => 19.96, "4-30-8" => 29.94, "4-50-8" => 49.9, "4-100-8" => 99.8, "4-200-8" => 199.6, "4-300-8" => 299.4, "4-500-8" => 499,//黑龙江 8
-        "4-10-29" => 9.91, "4-20-29" => 19.82, "4-30-29" => 29.73, "4-50-29" => 49.55, "4-100-29" => 99.1, "4-200-29" => 198.2, "4-300-29" => 297.3, "4-500-29" => 495.5,//青海 29
+        "4-10-29" => 9.88, "4-20-29" => 19.76, "4-30-29" => 29.64, "4-50-29" => 49.4, "4-100-29" => 98.8, "4-200-29" => 197.6, "4-300-29" => 296.4, "4-500-29" => 494,//青海 29
         "4-10-28" => 9.985, "4-20-28" => 19.97, "4-30-28" => 29.955, "4-50-28" => 49.925, "4-100-28" => 99.85, "4-200-28" => 199.7, "4-300-28" => 299.55, "4-500-28" => 499.25,//甘肃 28
         "4-10-28" => 9.985, "4-20-28" => 19.97, "4-30-28" => 29.955, "4-50-28" => 49.925, "4-100-28" => 99.85, "4-200-28" => 199.7, "4-300-28" => 299.55, "4-500-28" => 499.25,//甘肃 28
-        "4-10-13" => 10, "4-20-13" => 20, "4-30-13" => 30, "4-50-13" => 50, "4-100-13" => 100, "4-200-13" => 200, "4-300-13" => 300, "4-500-13" => 500,//福建 13
+        "4-10-13" => 10, "4-20-13" => 19.96, "4-30-13" => 29.94, "4-50-13" => 49.9, "4-100-13" => 99.8, "4-200-13" => 199.6, "4-300-13" => 299.4, "4-500-13" => 499,//福建 13
         "4-10-5" => 10.035, "4-20-5" => 20.07, "4-30-5" => 30.09, "4-50-5" => 50.15, "4-100-5" => 100.3, "4-200-5" => 200.4, "4-300-5" => 300.6, "4-500-5" => 501,//内蒙古 5
         "4-10-5" => 10.035, "4-20-5" => 20.07, "4-30-5" => 30.09, "4-50-5" => 50.15, "4-100-5" => 100.3, "4-200-5" => 200.4, "4-300-5" => 300.6, "4-500-5" => 501,//内蒙古 5
         "4-30-18" => 29.835, "4-50-18" => 49.725, "4-100-18" => 99.45, "4-200-18" => 198.3,//湖南 18
         "4-30-18" => 29.835, "4-50-18" => 49.725, "4-100-18" => 99.45, "4-200-18" => 198.3,//湖南 18
         "4-10-19" => 10.005, "4-20-19" => 20.1, "4-30-19" => 29.97, "4-50-19" => 49.95, "4-100-19" => 99.9, "4-200-19" => 199.8, "4-300-19" => 299.7, "4-500-19" => 499.5,//广东 19
         "4-10-19" => 10.005, "4-20-19" => 20.1, "4-30-19" => 29.97, "4-50-19" => 49.95, "4-100-19" => 99.9, "4-200-19" => 199.8, "4-300-19" => 299.7, "4-500-19" => 499.5,//广东 19
@@ -85,6 +85,8 @@ class config
         "4-10-24" => 10.13, "4-20-24" => 20.16, "4-30-24" => 30.18, "4-50-24" => 50.05, "4-100-24" => 100.1, "4-200-24" => 200.2, "4-300-24" => 300.3, "4-500-24" => 500.5,//贵州 24
         "4-10-24" => 10.13, "4-20-24" => 20.16, "4-30-24" => 30.18, "4-50-24" => 50.05, "4-100-24" => 100.1, "4-200-24" => 200.2, "4-300-24" => 300.3, "4-500-24" => 500.5,//贵州 24
         "4-10-30" => 10.12, "4-20-30" => 20.24, "4-30-30" => 30.129, "4-50-30" => 50.15, "4-100-30" => 100.2, "4-200-30" => 200.4, "4-300-30" => 300.3, "4-500-30" => 500.5,//宁夏 30
         "4-10-30" => 10.12, "4-20-30" => 20.24, "4-30-30" => 30.129, "4-50-30" => 50.15, "4-100-30" => 100.2, "4-200-30" => 200.4, "4-300-30" => 300.3, "4-500-30" => 500.5,//宁夏 30
         "4-10-25" => 10.14, "4-20-25" => 20.2, "4-30-25" => 30.18, "4-50-25" => 50.1, "4-100-25" => 100.2, "4-200-25" => 200.4, "4-300-25" => 300.6, "4-500-25" => 501,//云南 25
         "4-10-25" => 10.14, "4-20-25" => 20.2, "4-30-25" => 30.18, "4-50-25" => 50.1, "4-100-25" => 100.2, "4-200-25" => 200.4, "4-300-25" => 300.6, "4-500-25" => 501,//云南 25
+        "4-30-27" => 29.91, "4-50-27" => 49.85, "4-100-27" => 99.7, "4-200-27" => 199.4, "4-300-27" => 299.1, "4-500-27" => 498.5,//陕西 27
+
         //联通
         //联通
         "5-10-19" => 10.04, "5-20-19" => 20.08, "5-30-19" => 30.06, "5-50-19" => 50.1, "5-100-19" => 100.2, "5-200-19" => 200.4, "5-300-19" => 300.6, "5-500-19" => 501,//广东 19
         "5-10-19" => 10.04, "5-20-19" => 20.08, "5-30-19" => 30.06, "5-50-19" => 50.1, "5-100-19" => 100.2, "5-200-19" => 200.4, "5-300-19" => 300.6, "5-500-19" => 501,//广东 19
         "5-10-1" => 9.99, "5-20-1" => 19.98, "5-30-1" => 29.97, "5-50-1" => 49.95, "5-100-1" => 99.9, "5-200-1" => 199.8, "5-300-1" => 299.7, "5-500-1" => 499.5,//北京 1
         "5-10-1" => 9.99, "5-20-1" => 19.98, "5-30-1" => 29.97, "5-50-1" => 49.95, "5-100-1" => 99.9, "5-200-1" => 199.8, "5-300-1" => 299.7, "5-500-1" => 499.5,//北京 1
@@ -93,7 +95,7 @@ class config
         "5-20-23" => 20.08, "5-30-23" => 30.12, "5-50-23" => 50.2, "5-100-23" => 100.4, "5-200-23" => 200.8, "5-300-23" => 301.2, "5-500-23" => 502,//四川 23
         "5-20-23" => 20.08, "5-30-23" => 30.12, "5-50-23" => 50.2, "5-100-23" => 100.4, "5-200-23" => 200.8, "5-300-23" => 301.2, "5-500-23" => 502,//四川 23
         "5-10-31" => 10.22, "5-20-31" => 20.22, "5-30-31" => 30.24, "5-50-31" => 50.25, "5-100-31" => 100.3, "5-200-31" => 200.4, "5-300-31" => 300.6, "5-500-31" => 501,//新疆 31
         "5-10-31" => 10.22, "5-20-31" => 20.22, "5-30-31" => 30.24, "5-50-31" => 50.25, "5-100-31" => 100.3, "5-200-31" => 200.4, "5-300-31" => 300.6, "5-500-31" => 501,//新疆 31
         //电信
         //电信
-        "6-10-27" => 9.965, "6-20-27" => 19.93, "6-30-27" => 29.895, "6-50-27" => 49.825, "6-100-27" => 99.65, "6-200-27" => 199.3, "6-300-27" => 298.95, "6-500-27" => 498.25,//陕西 27
+        "6-10-27" => 9.925, "6-20-27" => 19.85, "6-30-27" => 29.775, "6-50-27" => 49.625, "6-100-27" => 99.25, "6-200-27" => 198.5, "6-300-27" => 298.5, "6-500-27" => 497.5,//陕西 27
         "6-10-4" => 9.935, "6-20-4" => 19.87, "6-30-4" => 29.805, "6-50-4" => 49.675, "6-100-4" => 99.35, "6-200-4" => 198.7, "6-300-4" => 298.05, "6-500-4" => 496.75,//山西 4
         "6-10-4" => 9.935, "6-20-4" => 19.87, "6-30-4" => 29.805, "6-50-4" => 49.675, "6-100-4" => 99.35, "6-200-4" => 198.7, "6-300-4" => 298.05, "6-500-4" => 496.75,//山西 4
         "6-10-18" => 10.04, "6-20-18" => 20.08, "6-30-18" => 30.12, "6-50-18" => 50.15, "6-100-18" => 100.3, "6-200-18" => 200.6, "6-300-18" => 300.9, "6-500-18" => 501.5,//湖南 18
         "6-10-18" => 10.04, "6-20-18" => 20.08, "6-30-18" => 30.12, "6-50-18" => 50.15, "6-100-18" => 100.3, "6-200-18" => 200.6, "6-300-18" => 300.9, "6-500-18" => 501.5,//湖南 18
         "6-10-15" => 10.21, "6-20-15" => 20.22, "6-30-15" => 30.231, "6-50-15" => 50.25, "6-100-15" => 100.3, "6-200-15" => 200.3, "6-300-15" => 300.45, "6-500-15" => 500.75,//山东 15
         "6-10-15" => 10.21, "6-20-15" => 20.22, "6-30-15" => 30.231, "6-50-15" => 50.25, "6-100-15" => 100.3, "6-200-15" => 200.3, "6-300-15" => 300.45, "6-500-15" => 500.75,//山东 15

+ 7 - 1
helper/refill/api/xyz/hanwei_fs/api.txt

@@ -105,4 +105,10 @@ ID:200047
 1440030  广东移动30元
 1440030  广东移动30元
 1440050  广东移动50元
 1440050  广东移动50元
 1440100  广东移动100元
 1440100  广东移动100元
-1440200  广东移动200元
+1440200  广东移动200元
+
+2023.4.17
+涵唯江西移动配置函 编码:
+江西移动50元     1360050
+江西移动100元    1360100
+江西移动200元    1360200

+ 7 - 0
helper/refill/api/xyz/hanwei_fs/config.php

@@ -101,6 +101,12 @@ class config
                 100 => 1440100,
                 100 => 1440100,
                 200 => 1440200,
                 200 => 1440200,
             ],
             ],
+            //江西
+            14 => [
+                50  => 1360050,
+                100 => 1360100,
+                200 => 1360200,
+            ],
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
             //广东
             //广东
@@ -169,6 +175,7 @@ class config
         "4-50-23" => 47.4, "4-100-23" => 94.8, "4-200-23" => 189.6,//四川 23
         "4-50-23" => 47.4, "4-100-23" => 94.8, "4-200-23" => 189.6,//四川 23
         "4-30-6" => 28.65, "4-50-6" => 47.75, "4-100-6" => 95.5, "4-200-6" => 191,//辽宁 6
         "4-30-6" => 28.65, "4-50-6" => 47.75, "4-100-6" => 95.5, "4-200-6" => 191,//辽宁 6
         "4-30-19" => 28.59, "4-50-19" => 47.65, "4-100-19" => 95.3, "4-200-19" => 190.6,//广东 19
         "4-30-19" => 28.59, "4-50-19" => 47.65, "4-100-19" => 95.3, "4-200-19" => 190.6,//广东 19
+        "4-50-14" => 47.25, "4-100-14" => 94.5, "4-200-14" => 189,//江西 14
 
 
         //电信
         //电信
         "6-30-11" => 28.2, "6-50-11" => 47, "6-100-11" => 94, "6-200-11" => 188,//浙江 11
         "6-30-11" => 28.2, "6-50-11" => 47, "6-100-11" => 94, "6-200-11" => 188,//浙江 11

+ 67 - 0
helper/refill/api/xyz/meihan/RefillCallBack.php

@@ -0,0 +1,67 @@
+<?php
+namespace refill\meihan;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan/config.php');
+
+use refill;
+class RefillCallBack implements refill\IRefillCallBack
+{
+    public function verify($params): bool
+    {
+        $input = $params;
+        unset($input['sign']);
+        $sign = $this->sign($input);
+        if ($params['sign'] == $sign) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+
+    private function check_empty($value)
+    {
+        if (!isset($value))
+            return true;
+        if ($value === null)
+            return true;
+        if (trim($value) === "")
+            return true;
+
+        return false;
+    }
+
+    public function notify($params)
+    {
+        $status = intval($params['orderStatus']);
+        $order_sn = $params['outOrderId'];
+        $order_info = Model('vr_order')->getOrderInfoForNotify(['order_sn' => $order_sn]);
+        if (empty($order_info)) {
+            return [false, false, false,false];
+        }
+
+        $order_id = $order_info['order_id'];
+        if ($status === 2) {
+            $data['official_sn'] = strtolower($params['ext1']) == 'null' ? '' : $params['ext1'];
+            Model('refill_order')->edit($order_id, $data);
+            return [$order_id, true, false, true];
+        } elseif ($status === 3) {
+            return [$order_id, false, true, true];
+        } else {
+            return [$order_id, false, false, false];
+        }
+    }
+}

+ 155 - 0
helper/refill/api/xyz/meihan/RefillPhone.php

@@ -0,0 +1,155 @@
+<?php
+
+namespace refill\meihan;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan/config.php');
+
+use refill;
+use Log;
+
+class RefillPhone extends refill\IRefillPhone
+{
+    public function __construct($cfgs)
+    {
+        parent::__construct($cfgs);
+    }
+
+    private function req_params(int $phone, int $amount, int $card_type, string $order_sn)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $order_sn;
+        $params['uuid'] = $phone;
+        $params['itemId'] = config::PRODUCT[$card_type][$amount];
+        $params['itemFace'] = $amount;
+        $params['callbackUrl'] = config::NOTIFY_URL;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        return $params;
+    }
+
+    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
+    {
+        $order_sn = $params['order_sn'];
+        $params = $this->req_params($card_no, $amount, $card_type, $order_sn);
+        if(empty($params['itemId'])) {
+            return [false, '商品编号错误', false];
+        }
+        $sign = $this->sign($params);
+        $params['sign'] = $sign;
+
+        $resp = http_request(config::ORDER_URL, $params, 'POST', false, config::ExtHeaders, $net_errno);
+
+        if (empty($resp)) {
+            return [false, '网络错误', true];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误', true];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['orderId'], false];
+            } elseif (in_array($resp['code'], config::ERRCODES, true)) {
+                return [false, $resp['msg'], false];
+            } elseif (in_array($resp['code'], ['-22', '-23', '-99'], true)) {
+                $net_errno = "HTTP-{$resp['code']}";
+                return [false, $resp['msg'], true];
+            } else {
+                $net_errno = "HTTP-998";
+                return [false, $resp['msg'], true];
+            }
+        }
+    }
+
+    public function query($refill_info)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $refill_info['order_sn'];
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::QUERY_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            }
+            elseif ($resp['code'] === '00')
+            {
+                $status = $resp['orderStatus'];
+                if ($status === '2') {
+                    $updata['official_sn'] = $resp['ext1'];
+                    Model('refill_order')->edit($refill_info['order_id'], $updata);
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($status === '3') {
+                    $order_state = ORDER_STATE_CANCEL;
+                } elseif ($status === '1') {
+                    $order_state = ORDER_STATE_SEND;
+                } elseif ($status === '4' && (time() - $refill_info['commit_time'] >= 600)) {
+                    $order_state = ORDER_STATE_NOEXIST;
+                } else {
+                    return [false, $resp['msg']];
+                }
+                return [true, $order_state];
+            }
+            else
+            {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    public function balance()
+    {
+        $params['appId'] = config::APP_ID;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::BALANCE_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['balance']];
+            } else {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    /**
+     * 获取毫秒级别的时间戳
+     */
+    private function get_millisecond()
+    {
+        list($usec, $sec) = explode(" ", microtime());
+        return round($usec*1000);
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+}

+ 37 - 0
helper/refill/api/xyz/meihan/config.php

@@ -0,0 +1,37 @@
+<?php
+
+
+namespace refill\meihan;
+
+use mtopcard;
+class config
+{
+    const ORDER_URL = 'http://47.106.88.10:8911/api/hf/order/submit';
+    const QUERY_URL = 'http://47.106.88.10:8911/api/order/query';
+    const BALANCE_URL = 'http://47.106.88.10:8911/api/account/balance';
+
+    const APP_ID = 'W33zTP9202';
+    const APP_SECRET = 'kVOmthqgbBXcPfsY';
+    const NOTIFY_URL = BASE_SITE_URL . "/mobile/callback/refill_meihan.php";
+
+    const PRODUCT = [
+        mtopcard\ChinaMobileCard => [
+            50  => 100162,
+            100 => 100163,
+            200 => 100164,
+        ],
+        mtopcard\ChinaUnicomCard => [
+            30  => 100165,
+            50  => 100166,
+            100 => 100167,
+            200 => 100168,
+        ],
+        mtopcard\ChinaTelecomCard => [
+            50  => 100170,
+            100 => 100171,
+            200 => 100172,
+        ],
+    ];
+    const ExtHeaders = ['Content-Type:application/x-www-form-urlencoded;charset=utf-8'];
+    const ERRCODES = ['-10', '-12', '-13', '-14', '-15', '-16', '-18', '-21'];
+}

+ 16 - 0
helper/refill/api/xyz/meihan/商品编码.txt

@@ -0,0 +1,16 @@
+全国移动   折扣965(0095+纯网厅)
+50:100162
+100:100163
+200:100164
+全国移动小面值   折扣95
+10:100269
+20:100270
+全国联通  折扣94   (11010332R开头流水)
+30:100165
+50:100166
+100:100167
+200:100168
+全国电信(暂时先配置965  目前不正常)
+50:100170
+100:100171
+200:100172

+ 14 - 0
helper/refill/api/xyz/meihan/开户信息.txt

@@ -0,0 +1,14 @@
+后台地址:http://47.106.88.10:8888
+帐号:BJDYYWT
+密码:907250
+二级密码:bYIX0334
+appId:W33zTP9202
+appSecret:kVOmthqgbBXcPfsY
+后台-商品列表,可查看已配置商品信息
+后台-安全中心,可配置IP白名单
+接口文档:https://www.showdoc.com.cn/1686453783298366/7925312871840290
+话费直充接口:http://47.106.88.10:8911/api/hf/order/submit
+通用直充接口:http://47.106.88.10:8911/api/order/submit
+卡密提取接口:http://47.106.88.10:8911/api/card/get
+查询接口接口:http://47.106.88.10:8911/api/order/query
+余额查询接口:http://47.106.88.10:8911/api/account/balance

+ 67 - 0
helper/refill/api/xyz/meihan_fs/RefillCallBack.php

@@ -0,0 +1,67 @@
+<?php
+namespace refill\meihan_fs;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan_fs/config.php');
+
+use refill;
+class RefillCallBack implements refill\IRefillCallBack
+{
+    public function verify($params): bool
+    {
+        $input = $params;
+        unset($input['sign']);
+        $sign = $this->sign($input);
+        if ($params['sign'] == $sign) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+
+    private function check_empty($value)
+    {
+        if (!isset($value))
+            return true;
+        if ($value === null)
+            return true;
+        if (trim($value) === "")
+            return true;
+
+        return false;
+    }
+
+    public function notify($params)
+    {
+        $status = intval($params['orderStatus']);
+        $order_sn = $params['outOrderId'];
+        $order_info = Model('vr_order')->getOrderInfoForNotify(['order_sn' => $order_sn]);
+        if (empty($order_info)) {
+            return [false, false, false,false];
+        }
+
+        $order_id = $order_info['order_id'];
+        if ($status === 2) {
+            $data['official_sn'] = strtolower($params['ext1']) == 'null' ? '' : $params['ext1'];
+            Model('refill_order')->edit($order_id, $data);
+            return [$order_id, true, false, true];
+        } elseif ($status === 3) {
+            return [$order_id, false, true, true];
+        } else {
+            return [$order_id, false, false, false];
+        }
+    }
+}

+ 173 - 0
helper/refill/api/xyz/meihan_fs/RefillPhone.php

@@ -0,0 +1,173 @@
+<?php
+
+namespace refill\meihan_fs;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan_fs/config.php');
+
+use refill;
+use Log;
+
+class RefillPhone extends refill\IRefillPhone
+{
+    public function __construct($cfgs)
+    {
+        parent::__construct($cfgs);
+    }
+
+    public function goods($quality,int $amount,int $card_type,$regin_no,$other)
+    {
+        [$goods_id, $price] = parent::goods($quality,$amount,$card_type,$regin_no,$other);
+        if($goods_id <= 0) return [0,0];
+        $key = "{$card_type}-{$amount}-{$regin_no}";
+        $price = config::Price[$key];
+        if(empty($price)) {
+            Log::record("channel cannot find price where name={$this->mName}, goods_id = {$goods_id} card_type={$card_type} amount={$amount} regin_no={$regin_no}",Log::ERR);
+            return [0,0];
+        } else {
+            return [$goods_id,ncPriceFormat($price)];
+        }
+    }
+
+    private function req_params(int $phone, int $amount, int $card_type, string $order_sn, $regin_no)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $order_sn;
+        $params['uuid'] = $phone;
+        $params['itemId'] = config::PRODUCT[$card_type][$regin_no][$amount];
+        $params['itemFace'] = $amount;
+        $params['callbackUrl'] = config::NOTIFY_URL;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        return $params;
+    }
+
+    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
+    {
+        $regin_no = $params['regin_no'] ?? -1;
+        if($regin_no <= 0) {
+            return [false, '省份获取错误', false];
+        }
+        $order_sn = $params['order_sn'];
+        $params = $this->req_params($card_no, $amount, $card_type, $order_sn, $regin_no);
+        if(empty($params['itemId'])) {
+            return [false, '商品编号错误', false];
+        }
+        $sign = $this->sign($params);
+        $params['sign'] = $sign;
+
+        $resp = http_request(config::ORDER_URL, $params, 'POST', false, config::ExtHeaders, $net_errno);
+
+        if (empty($resp)) {
+            return [false, '网络错误', true];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误', true];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['orderId'], false];
+            } elseif (in_array($resp['code'], config::ERRCODES, true)) {
+                return [false, $resp['msg'], false];
+            } elseif (in_array($resp['code'], ['-22', '-23', '-99'], true)) {
+                $net_errno = "HTTP-{$resp['code']}";
+                return [false, $resp['msg'], true];
+            } else {
+                $net_errno = "HTTP-998";
+                return [false, $resp['msg'], true];
+            }
+        }
+    }
+
+    public function query($refill_info)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $refill_info['order_sn'];
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::QUERY_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            }
+            elseif ($resp['code'] === '00')
+            {
+                $status = $resp['orderStatus'];
+                if ($status === '2') {
+                    $updata['official_sn'] = $resp['ext1'];
+                    Model('refill_order')->edit($refill_info['order_id'], $updata);
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($status === '3') {
+                    $order_state = ORDER_STATE_CANCEL;
+                } elseif ($status === '1') {
+                    $order_state = ORDER_STATE_SEND;
+                } elseif ($status === '4' && (time() - $refill_info['commit_time'] >= 600)) {
+                    $order_state = ORDER_STATE_NOEXIST;
+                } else {
+                    return [false, $resp['msg']];
+                }
+                return [true, $order_state];
+            }
+            else
+            {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    public function balance()
+    {
+        $params['appId'] = config::APP_ID;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::BALANCE_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['balance']];
+            } else {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    /**
+     * 获取毫秒级别的时间戳
+     */
+    private function get_millisecond()
+    {
+        list($usec, $sec) = explode(" ", microtime());
+        return round($usec*1000);
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+}

+ 137 - 0
helper/refill/api/xyz/meihan_fs/config.php

@@ -0,0 +1,137 @@
+<?php
+
+
+namespace refill\meihan_fs;
+
+use mtopcard;
+class config
+{
+    const ORDER_URL = 'http://47.106.88.10:8911/api/hf/order/submit';
+    const QUERY_URL = 'http://47.106.88.10:8911/api/order/query';
+    const BALANCE_URL = 'http://47.106.88.10:8911/api/account/balance';
+
+    const APP_ID = 'WtCDoePp9g';
+    const APP_SECRET = 'EQDmGGUwJLkjWFIE';
+    const NOTIFY_URL = BASE_SITE_URL . "/mobile/callback/refill_meihan_fs.php";
+
+    const ExtHeaders = ['Content-Type:application/x-www-form-urlencoded;charset=utf-8'];
+    const ERRCODES = ['-10', '-12', '-13', '-14', '-15', '-16', '-18', '-21'];
+
+    const PRODUCT = [
+        mtopcard\ChinaMobileCard => [
+            //江苏
+            10 => [
+                30  => 100173,
+                50  => 100174,
+                100 => 100175,
+                200 => 100176,
+            ],
+            //贵州
+            24 => [
+                30  => 100177,
+                50  => 100178,
+                100 => 100179,
+                200 => 100180,
+            ],
+            //福建
+            13 => [
+                30  => 100181,
+                50  => 100182,
+                100 => 100183,
+                200 => 100184,
+            ],
+            //云南
+            25 => [
+                30  => 100189,
+                50  => 100190,
+                100 => 100191,
+                200 => 100192,
+            ],
+            //广西
+            20 => [
+                30  => 100193,
+                50  => 100194,
+                100 => 100195,
+                200 => 100196,
+            ],
+            //江西
+            14 => [
+                50  => 100337,
+                100 => 100338,
+                200 => 100339,
+            ],
+        ],
+
+        mtopcard\ChinaTelecomCard => [
+            //福建
+            13 => [
+                30  => 100201,
+                50  => 100202,
+                100 => 100203,
+                200 => 100204,
+            ],
+            //湖南
+            18 => [
+                30  => 100248,
+                50  => 100249,
+                100 => 100250,
+                200 => 100251,
+            ],
+            //四川
+            23 => [
+                30  => 100197,
+                50  => 100198,
+                100 => 100199,
+                200 => 100200,
+            ],
+            //广东
+            19 => [
+                30  => 100220,
+                50  => 100221,
+                100 => 100222,
+                200 => 100223,
+            ],
+            //江苏
+            10 => [
+                30  => 100209,
+                50  => 100210,
+                100 => 100211,
+                200 => 100212,
+            ],
+            //新疆
+            31 => [
+                30  => 100258,
+                50  => 100259,
+                100 => 100260,
+                200 => 100261,
+            ],
+            //海南
+            21 => [
+                30  => 100265,
+                50  => 100266,
+                100 => 100267,
+                200 => 100268,
+            ],
+        ],
+    ];
+
+    //key格式 卡类型-面值-regin_no
+    const Price = [
+        //移动
+        "4-30-10" => 28.35, "4-50-10" => 47.25, "4-100-10" => 94.5, "4-200-10" => 189,//江苏 10
+        "4-30-24" => 27.6, "4-50-24" => 46, "4-100-24" => 92, "4-200-24" => 184,//贵州 24
+        "4-30-13" => 28.05, "4-50-13" => 46.75, "4-100-13" => 93.5, "4-200-13" => 187,//福建 13
+        "4-30-25" => 27.9, "4-50-25" => 46.5, "4-100-25" => 93, "4-200-25" => 186,//云南 25
+        "4-30-20" => 28.05, "4-50-20" => 46.75, "4-100-20" => 93.5, "4-200-20" => 187,//广西 20
+        "4-50-14" => 46.75, "4-100-14" => 93.5, "4-200-14" => 187,//江西 14
+
+        //电信
+        "6-30-13" => 27.75, "6-50-13" => 46.25, "6-100-13" => 92.5, "6-200-13" => 185,//福建 13
+        "6-30-18" => 28.05, "6-50-18" => 46.75, "6-100-18" => 93.5, "6-200-18" => 187,//湖南 18
+        "6-30-23" => 27.75, "6-50-23" => 46.25, "6-100-23" => 92.5, "6-200-23" => 185,//四川 23
+        "6-30-19" => 28.2, "6-50-19" => 47, "6-100-19" => 94, "6-200-19" => 188,//广东 19
+        "6-30-10" => 28.05, "6-50-10" => 46.75, "6-100-10" => 93.5, "6-200-10" => 187,//江苏 10
+        "6-30-31" => 27.75, "6-50-31" => 46.25, "6-100-31" => 92.5, "6-200-31" => 185,//新疆 31
+        "6-30-21" => 27.75, "6-50-21" => 46.25, "6-100-21" => 92.5, "6-200-21" => 185,//海南 21
+    ];
+}

+ 81 - 0
helper/refill/api/xyz/meihan_fs/商品编码.txt

@@ -0,0 +1,81 @@
+江苏移动分省(暂时配置945,目前不正常)
+30:100173
+50:100174
+100:100175
+200:100176
+
+贵州移动分省    折扣92
+30:100177
+50:100178
+100:100179
+200:100180
+
+福建移动分省   折扣935
+30:100181
+50:100182
+100:100183
+200:100184
+
+云南移动分省    折扣93
+30:100189
+50:100190
+100:100191
+200:100192
+
+广西移动分省    折扣935
+30:100193
+50:100194
+100:100195
+200:100196
+
+江西移动分省    折扣935
+50:100337
+100:100338
+200:100339
+
+
+
+
+
+
+福建电信分省   折扣925
+30:100201
+50:100202
+100:100203
+200:100204
+
+湖南电信分省   折扣935
+30:100248
+50:100249
+100:100250
+200:100251
+
+四川电信分省   折扣925
+30:100197
+50:100198
+100:100199
+200:100200
+
+广东电信分省   折扣94
+30:100220
+50:100221
+100:100222
+200:100223
+
+江苏电信分省  折扣935
+30:100209
+50:100210
+100:100211
+200:100212
+
+新疆电信分省  折扣925
+30:100258
+50:100259
+100:100260
+200:100261
+
+海南电信分省  折扣925
+30:100265
+50:100266
+100:100267
+200:100268

+ 14 - 0
helper/refill/api/xyz/meihan_fs/开户信息.txt

@@ -0,0 +1,14 @@
+后台地址:http://47.106.88.10:8888
+帐号:BJYYDFS
+密码:193312
+二级密码:Sdij1797
+appId:WtCDoePp9g
+appSecret:EQDmGGUwJLkjWFIE
+后台-商品列表,可查看已配置商品信息
+后台-安全中心,可配置IP白名单
+接口文档:https://www.showdoc.com.cn/1686453783298366/7925312871840290
+话费直充接口:http://47.106.88.10:8911/api/hf/order/submit
+通用直充接口:http://47.106.88.10:8911/api/order/submit
+卡密提取接口:http://47.106.88.10:8911/api/card/get
+查询接口接口:http://47.106.88.10:8911/api/order/query
+余额查询接口:http://47.106.88.10:8911/api/account/balance

+ 1 - 1
helper/refill/api/xyz/meixu/config.php

@@ -37,7 +37,7 @@ class config
             10 => 30000001581,
             10 => 30000001581,
             20 => 30000001582,
             20 => 30000001582,
             30 => 30000001583,
             30 => 30000001583,
-            50 => 30000001584,
+            50 => 100012,
             100 => 30000001585,
             100 => 30000001585,
             200 => 30000001586,
             200 => 30000001586,
             300 => 30000001587,
             300 => 30000001587,

+ 3 - 0
helper/refill/api/xyz/meixu/对接文档-yezi.txt

@@ -48,3 +48,6 @@
 30000001585 全国联通掌厅话费100元
 30000001585 全国联通掌厅话费100元
 30000001586 全国联通掌厅话费200元
 30000001586 全国联通掌厅话费200元
 30000001587 全国联通掌厅话费300元
 30000001587 全国联通掌厅话费300元
+
+2023.4.14
+100012 全国联通沃支付话费 50 元

+ 2 - 0
helper/refill/api/xyz/ruixunda/config.php

@@ -47,6 +47,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 7 - 0
helper/refill/api/xyz/ruixunda/对接文档-yezi.txt

@@ -50,3 +50,10 @@ http://47.96.69.138:9086/searchbalance.do
 云九一     全国移动10.20产品编码:
 云九一     全国移动10.20产品编码:
 101685 全国移动话费10元直充
 101685 全国移动话费10元直充
 101686 全国移动话费20元直充
 101686 全国移动话费20元直充
+
+2023.4.18
+电信小额编码:
+101721 全国电信话费10元直充
+101722 全国电信话费20元直充
+101723 全国电信话费30元直充
+101724 全国电信话费50元直充

BIN
helper/refill/api/xyz/ruixunda_fs/20230415江苏移动调价函.jpg


+ 1 - 1
helper/refill/api/xyz/ruixunda_fs/config.php

@@ -149,7 +149,7 @@ class config
     const Price = [
     const Price = [
         //移动
         //移动
         "4-30-24" => 28.26, "4-50-24" => 47.1, "4-100-24" => 94.2, "4-200-24" => 188.4,//贵州 24
         "4-30-24" => 28.26, "4-50-24" => 47.1, "4-100-24" => 94.2, "4-200-24" => 188.4,//贵州 24
-        "4-30-10" => 28.11, "4-50-10" => 46.85, "4-100-10" => 93.7, "4-200-10" => 187.4,//江苏 10
+        "4-30-10" => 28.11, "4-50-10" => 47.1, "4-100-10" => 94.2, "4-200-10" => 188.4,//江苏 10
         "4-30-15" => 28.5, "4-50-15" => 47.5, "4-100-15" => 95, "4-200-15" => 190,//山东 15
         "4-30-15" => 28.5, "4-50-15" => 47.5, "4-100-15" => 95, "4-200-15" => 190,//山东 15
         "4-30-13" => 28.26, "4-50-13" => 47.1, "4-100-13" => 94.2, "4-200-13" => 188.4,//福建 13
         "4-30-13" => 28.26, "4-50-13" => 47.1, "4-100-13" => 94.2, "4-200-13" => 188.4,//福建 13
         "4-30-25" => 27.96, "4-50-25" => 46.6, "4-100-25" => 93.2, "4-200-25" => 186.4,//云南 25
         "4-30-25" => 27.96, "4-50-25" => 46.6, "4-100-25" => 93.2, "4-200-25" => 186.4,//云南 25

+ 2 - 0
helper/refill/api/xyz/weixue/config.php

@@ -48,6 +48,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 6 - 0
helper/refill/api/xyz/weixue/对接文档-yezi.txt

@@ -47,3 +47,9 @@ ID:10002703
 50	101724
 50	101724
 100	101725
 100	101725
 200	101726
 200	101726
+
+2023.4.16
+101721 全国电信话费10
+101722 全国电信话费20
+101723 全国电信话费30
+101724 全国电信话费50

+ 2 - 0
helper/refill/api/xyz/yuewen/config.php

@@ -45,6 +45,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 9 - 1
helper/refill/api/xyz/yuewen/对接文档-yezi.txt

@@ -41,4 +41,12 @@ http://123.60.5.158:9086/searchbalance.do
 101707 全国联通话费100元直充
 101707 全国联通话费100元直充
 101708 全国联通话费200元直充
 101708 全国联通话费200元直充
 101709 全国联通话费300元直充
 101709 全国联通话费300元直充
-101710 全国联通话费500元直充
+101710 全国联通话费500元直充
+
+2023.4.16
+越文    全国电信10-50调价函
+编码
+101721 全国电信话费10
+101722 全国电信话费20
+101723 全国电信话费30
+101724 全国电信话费50

+ 1 - 0
helper/refill/api/xyz/yunchonggongfs/config.php

@@ -49,5 +49,6 @@ class config
         "6-30-31" => 28.05, "6-50-31" => 46.75, "6-100-31" => 93.5, "6-200-31" => 187,//新疆 31
         "6-30-31" => 28.05, "6-50-31" => 46.75, "6-100-31" => 93.5, "6-200-31" => 187,//新疆 31
         "6-30-10" => 28.05, "6-50-10" => 46.75, "6-100-10" => 93.5, "6-200-10" => 187,//江苏 10
         "6-30-10" => 28.05, "6-50-10" => 46.75, "6-100-10" => 93.5, "6-200-10" => 187,//江苏 10
         "6-30-13" => 28.05, "6-50-13" => 46.75, "6-100-13" => 93.5, "6-200-13" => 187,//福建 13
         "6-30-13" => 28.05, "6-50-13" => 46.75, "6-100-13" => 93.5, "6-200-13" => 187,//福建 13
+        "6-30-21" => 28.05, "6-50-21" => 46.75, "6-100-21" => 93.5, "6-200-21" => 187,//海南 21
     ];
     ];
 }
 }

+ 5 - 0
helper/refill/api/xyz/ziyugui/api.txt

@@ -36,3 +36,8 @@ http://116.62.55.92:10186/plat/index
 编码
 编码
 全国移动10元 1000010
 全国移动10元 1000010
 全国移动20元 1000020
 全国移动20元 1000020
+
+2023.4.17
+子于归全国电信10-50调价函
+全国电信10元    3000010
+全国电信20元    3000020

+ 3 - 1
helper/refill/api/xyz/ziyugui/config.php

@@ -41,10 +41,12 @@ class config
             200 => 2000200,
             200 => 2000200,
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
+            10  => 3000010,
+            20  => 3000020,
             30  => 3000030,
             30  => 3000030,
             50  => 3000050,
             50  => 3000050,
             100 => 3000100,
             100 => 3000100,
             200 => 3000200,
             200 => 3000200,
         ],
         ],
     ];
     ];
-}
+}

+ 2 - 0
helper/refill/api/yl/bier/config.php

@@ -34,6 +34,8 @@ class config
             200 => 'CUCCALLr200r',
             200 => 'CUCCALLr200r',
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
+            10 => 'CTCCALLr10r',
+            20 => 'CTCCALLr20r',
             30 => 'CTCCALLr30r',
             30 => 'CTCCALLr30r',
             50 => 'CTCCALLr50r',
             50 => 'CTCCALLr50r',
             100 => 'CTCCALLr100r',
             100 => 'CTCCALLr100r',

+ 2 - 0
helper/refill/api/yl/dazhanggui/config.php

@@ -44,6 +44,8 @@ class config
             500 => 2000500,
             500 => 2000500,
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
+            10  => 3000010,
+            20  => 3000020,
             30  => 3000030,
             30  => 3000030,
             50  => 3000050,
             50  => 3000050,
             100 => 3000100,
             100 => 3000100,

+ 2 - 0
helper/refill/api/yl/dezhi/config.php

@@ -47,6 +47,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 1 - 1
helper/refill/api/yl/dezhi_fs/config.php

@@ -34,7 +34,7 @@ class config
         "4-30-25" => 28.44, "4-50-25" => 46.75, "4-100-25" => 93.5, "4-200-25" => 187,//云南 25
         "4-30-25" => 28.44, "4-50-25" => 46.75, "4-100-25" => 93.5, "4-200-25" => 187,//云南 25
         "4-50-16" => 46.9, "4-100-16" => 93.8, "4-200-16" => 187.6,//河南 16
         "4-50-16" => 46.9, "4-100-16" => 93.8, "4-200-16" => 187.6,//河南 16
         "4-50-3" => 47.1, "4-100-3" => 94.2, "4-200-3" => 188.4,//河北 3
         "4-50-3" => 47.1, "4-100-3" => 94.2, "4-200-3" => 188.4,//河北 3
-        "4-50-20" => 46.75, "4-100-20" => 93.5, "4-200-20" => 187,//广西 20
+        "4-30-20" => 28.41, "4-50-20" => 47.35, "4-100-20" => 94.7, "4-200-20" => 189.4,//广西 20
         "4-30-23" => 28.26, "4-50-23" => 47.1, "4-100-23" => 94.2, "4-200-23" => 188.4,//四川 23
         "4-30-23" => 28.26, "4-50-23" => 47.1, "4-100-23" => 94.2, "4-200-23" => 188.4,//四川 23
         "4-50-11" => 47.75, "4-100-11" => 95.5, "4-200-11" => 191,//浙江 11
         "4-50-11" => 47.75, "4-100-11" => 95.5, "4-200-11" => 191,//浙江 11
         "4-50-14" => 46.8, "4-100-14" => 93.6, "4-200-14" => 187.2,//江西 14
         "4-50-14" => 46.8, "4-100-14" => 93.6, "4-200-14" => 187.2,//江西 14

+ 9 - 1
helper/refill/api/yl/feimingyu_fs/config.php

@@ -68,6 +68,13 @@ class config
                 100 => 331118,
                 100 => 331118,
                 200 => 30000000790,
                 200 => 30000000790,
             ],
             ],
+            //江西
+            14 => [
+                30  => 31768,
+                50  => 31769,
+                100 => 31770,
+                200 => 317623,
+            ],
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
             //广东
             //广东
@@ -117,7 +124,8 @@ class config
         "4-30-20" => 28.2, "4-50-20" => 47, "4-100-20" => 94, "4-200-20" => 188,//广西 20
         "4-30-20" => 28.2, "4-50-20" => 47, "4-100-20" => 94, "4-200-20" => 188,//广西 20
         "4-30-13" => 28.2, "4-50-13" => 47, "4-100-13" => 94, "4-200-13" => 188,//福建 13
         "4-30-13" => 28.2, "4-50-13" => 47, "4-100-13" => 94, "4-200-13" => 188,//福建 13
         "4-30-24" => 27.6, "4-50-24" => 46, "4-100-24" => 92, "4-200-24" => 184,//贵州 24
         "4-30-24" => 27.6, "4-50-24" => 46, "4-100-24" => 92, "4-200-24" => 184,//贵州 24
-        "4-30-10" => 28.89, "4-50-10" => 48.15, "4-100-10" => 96.3, "4-200-10" => 192.6,//江苏 10
+        "4-30-10" => 28.59, "4-50-10" => 47.65, "4-100-10" => 95.3, "4-200-10" => 190.6,//江苏 10
+        "4-30-14" => 27.6, "4-50-14" => 46, "4-100-14" => 92, "4-200-14" => 184,//江西 14
 
 
         //电信
         //电信
         "6-30-19" => 28.05, "6-50-19" => 46.75, "6-100-19" => 93.5, "6-200-19" => 187,//广东 19
         "6-30-19" => 28.05, "6-50-19" => 46.75, "6-100-19" => 93.5, "6-200-19" => 187,//广东 19

+ 6 - 4
helper/refill/api/yl/guochuang/config.php

@@ -64,12 +64,12 @@ class config
     const Price = [
     const Price = [
         //移动
         //移动
         "4-10-2" => 10.18, "4-20-2" => 20.36, "4-30-2" => 30.18, "4-50-2" => 50.3, "4-100-2" => 100.3, "4-200-2" => 200.6, "4-300-2" => 300.9, "4-500-2" => 501.5,//天津 2
         "4-10-2" => 10.18, "4-20-2" => 20.36, "4-30-2" => 30.18, "4-50-2" => 50.3, "4-100-2" => 100.3, "4-200-2" => 200.6, "4-300-2" => 300.9, "4-500-2" => 501.5,//天津 2
-        "4-10-6" => 9.7, "4-20-6" => 19.4, "4-30-6" => 29.1, "4-50-6" => 48.5, "4-100-6" => 97, "4-200-6" => 194, "4-300-6" => 291, "4-500-6" => 485,//辽宁 6
+        "4-10-6" => 9.69, "4-20-6" => 19.38, "4-30-6" => 29.07, "4-50-6" => 48.45, "4-100-6" => 96.9, "4-200-6" => 193.8, "4-300-6" => 290.7, "4-500-6" => 484.5,//辽宁 6
         "4-10-9" => 9.94, "4-20-9" => 19.88, "4-30-9" => 29.82, "4-50-9" => 49.7, "4-100-9" => 99.4,//上海 9
         "4-10-9" => 9.94, "4-20-9" => 19.88, "4-30-9" => 29.82, "4-50-9" => 49.7, "4-100-9" => 99.4,//上海 9
         "4-10-8" => 9.98, "4-20-8" => 19.96, "4-30-8" => 29.94, "4-50-8" => 49.9, "4-100-8" => 99.8, "4-200-8" => 199.6, "4-300-8" => 299.4, "4-500-8" => 499,//黑龙江 8
         "4-10-8" => 9.98, "4-20-8" => 19.96, "4-30-8" => 29.94, "4-50-8" => 49.9, "4-100-8" => 99.8, "4-200-8" => 199.6, "4-300-8" => 299.4, "4-500-8" => 499,//黑龙江 8
-        "4-10-29" => 9.91, "4-20-29" => 19.82, "4-30-29" => 29.73, "4-50-29" => 49.55, "4-100-29" => 99.1, "4-200-29" => 198.2, "4-300-29" => 297.3, "4-500-29" => 495.5,//青海 29
+        "4-10-29" => 9.88, "4-20-29" => 19.76, "4-30-29" => 29.64, "4-50-29" => 49.4, "4-100-29" => 98.8, "4-200-29" => 197.6, "4-300-29" => 296.4, "4-500-29" => 494,//青海 29
         "4-10-28" => 9.985, "4-20-28" => 19.97, "4-30-28" => 29.955, "4-50-28" => 49.925, "4-100-28" => 99.85, "4-200-28" => 199.7, "4-300-28" => 299.55, "4-500-28" => 499.25,//甘肃 28
         "4-10-28" => 9.985, "4-20-28" => 19.97, "4-30-28" => 29.955, "4-50-28" => 49.925, "4-100-28" => 99.85, "4-200-28" => 199.7, "4-300-28" => 299.55, "4-500-28" => 499.25,//甘肃 28
-        "4-10-13" => 10, "4-20-13" => 20, "4-30-13" => 30, "4-50-13" => 50, "4-100-13" => 100, "4-200-13" => 200, "4-300-13" => 300, "4-500-13" => 500,//福建 13
+        "4-10-13" => 10, "4-20-13" => 19.96, "4-30-13" => 29.94, "4-50-13" => 49.9, "4-100-13" => 99.8, "4-200-13" => 199.6, "4-300-13" => 299.4, "4-500-13" => 499,//福建 13
         "4-10-5" => 10.035, "4-20-5" => 20.07, "4-30-5" => 30.09, "4-50-5" => 50.15, "4-100-5" => 100.3, "4-200-5" => 200.4, "4-300-5" => 300.6, "4-500-5" => 501,//内蒙古 5
         "4-10-5" => 10.035, "4-20-5" => 20.07, "4-30-5" => 30.09, "4-50-5" => 50.15, "4-100-5" => 100.3, "4-200-5" => 200.4, "4-300-5" => 300.6, "4-500-5" => 501,//内蒙古 5
         "4-30-18" => 29.835, "4-50-18" => 49.725, "4-100-18" => 99.45, "4-200-18" => 198.3,//湖南 18
         "4-30-18" => 29.835, "4-50-18" => 49.725, "4-100-18" => 99.45, "4-200-18" => 198.3,//湖南 18
         "4-10-19" => 10.005, "4-20-19" => 20.1, "4-30-19" => 29.97, "4-50-19" => 49.95, "4-100-19" => 99.9, "4-200-19" => 199.8, "4-300-19" => 299.7, "4-500-19" => 499.5,//广东 19
         "4-10-19" => 10.005, "4-20-19" => 20.1, "4-30-19" => 29.97, "4-50-19" => 49.95, "4-100-19" => 99.9, "4-200-19" => 199.8, "4-300-19" => 299.7, "4-500-19" => 499.5,//广东 19
@@ -85,6 +85,8 @@ class config
         "4-10-24" => 10.13, "4-20-24" => 20.16, "4-30-24" => 30.18, "4-50-24" => 50.05, "4-100-24" => 100.1, "4-200-24" => 200.2, "4-300-24" => 300.3, "4-500-24" => 500.5,//贵州 24
         "4-10-24" => 10.13, "4-20-24" => 20.16, "4-30-24" => 30.18, "4-50-24" => 50.05, "4-100-24" => 100.1, "4-200-24" => 200.2, "4-300-24" => 300.3, "4-500-24" => 500.5,//贵州 24
         "4-10-30" => 10.12, "4-20-30" => 20.24, "4-30-30" => 30.129, "4-50-30" => 50.15, "4-100-30" => 100.2, "4-200-30" => 200.4, "4-300-30" => 300.3, "4-500-30" => 500.5,//宁夏 30
         "4-10-30" => 10.12, "4-20-30" => 20.24, "4-30-30" => 30.129, "4-50-30" => 50.15, "4-100-30" => 100.2, "4-200-30" => 200.4, "4-300-30" => 300.3, "4-500-30" => 500.5,//宁夏 30
         "4-10-25" => 10.14, "4-20-25" => 20.2, "4-30-25" => 30.18, "4-50-25" => 50.1, "4-100-25" => 100.2, "4-200-25" => 200.4, "4-300-25" => 300.6, "4-500-25" => 501,//云南 25
         "4-10-25" => 10.14, "4-20-25" => 20.2, "4-30-25" => 30.18, "4-50-25" => 50.1, "4-100-25" => 100.2, "4-200-25" => 200.4, "4-300-25" => 300.6, "4-500-25" => 501,//云南 25
+        "4-30-27" => 29.91, "4-50-27" => 49.85, "4-100-27" => 99.7, "4-200-27" => 199.4, "4-300-27" => 299.1, "4-500-27" => 498.5,//陕西 27
+
         //联通
         //联通
         "5-10-19" => 10.04, "5-20-19" => 20.08, "5-30-19" => 30.06, "5-50-19" => 50.1, "5-100-19" => 100.2, "5-200-19" => 200.4, "5-300-19" => 300.6, "5-500-19" => 501,//广东 19
         "5-10-19" => 10.04, "5-20-19" => 20.08, "5-30-19" => 30.06, "5-50-19" => 50.1, "5-100-19" => 100.2, "5-200-19" => 200.4, "5-300-19" => 300.6, "5-500-19" => 501,//广东 19
         "5-10-1" => 9.99, "5-20-1" => 19.98, "5-30-1" => 29.97, "5-50-1" => 49.95, "5-100-1" => 99.9, "5-200-1" => 199.8, "5-300-1" => 299.7, "5-500-1" => 499.5,//北京 1
         "5-10-1" => 9.99, "5-20-1" => 19.98, "5-30-1" => 29.97, "5-50-1" => 49.95, "5-100-1" => 99.9, "5-200-1" => 199.8, "5-300-1" => 299.7, "5-500-1" => 499.5,//北京 1
@@ -93,7 +95,7 @@ class config
         "5-20-23" => 20.08, "5-30-23" => 30.12, "5-50-23" => 50.2, "5-100-23" => 100.4, "5-200-23" => 200.8, "5-300-23" => 301.2, "5-500-23" => 502,//四川 23
         "5-20-23" => 20.08, "5-30-23" => 30.12, "5-50-23" => 50.2, "5-100-23" => 100.4, "5-200-23" => 200.8, "5-300-23" => 301.2, "5-500-23" => 502,//四川 23
         "5-10-31" => 10.22, "5-20-31" => 20.22, "5-30-31" => 30.24, "5-50-31" => 50.25, "5-100-31" => 100.3, "5-200-31" => 200.4, "5-300-31" => 300.6, "5-500-31" => 501,//新疆 31
         "5-10-31" => 10.22, "5-20-31" => 20.22, "5-30-31" => 30.24, "5-50-31" => 50.25, "5-100-31" => 100.3, "5-200-31" => 200.4, "5-300-31" => 300.6, "5-500-31" => 501,//新疆 31
         //电信
         //电信
-        "6-10-27" => 9.965, "6-20-27" => 19.93, "6-30-27" => 29.895, "6-50-27" => 49.825, "6-100-27" => 99.65, "6-200-27" => 199.3, "6-300-27" => 298.95, "6-500-27" => 498.25,//陕西 27
+        "6-10-27" => 9.925, "6-20-27" => 19.85, "6-30-27" => 29.775, "6-50-27" => 49.625, "6-100-27" => 99.25, "6-200-27" => 198.5, "6-300-27" => 298.5, "6-500-27" => 497.5,//陕西 27
         "6-10-4" => 9.935, "6-20-4" => 19.87, "6-30-4" => 29.805, "6-50-4" => 49.675, "6-100-4" => 99.35, "6-200-4" => 198.7, "6-300-4" => 298.05, "6-500-4" => 496.75,//山西 4
         "6-10-4" => 9.935, "6-20-4" => 19.87, "6-30-4" => 29.805, "6-50-4" => 49.675, "6-100-4" => 99.35, "6-200-4" => 198.7, "6-300-4" => 298.05, "6-500-4" => 496.75,//山西 4
         "6-10-18" => 10.04, "6-20-18" => 20.08, "6-30-18" => 30.12, "6-50-18" => 50.15, "6-100-18" => 100.3, "6-200-18" => 200.6, "6-300-18" => 300.9, "6-500-18" => 501.5,//湖南 18
         "6-10-18" => 10.04, "6-20-18" => 20.08, "6-30-18" => 30.12, "6-50-18" => 50.15, "6-100-18" => 100.3, "6-200-18" => 200.6, "6-300-18" => 300.9, "6-500-18" => 501.5,//湖南 18
         "6-10-15" => 10.21, "6-20-15" => 20.22, "6-30-15" => 30.231, "6-50-15" => 50.25, "6-100-15" => 100.3, "6-200-15" => 200.3, "6-300-15" => 300.45, "6-500-15" => 500.75,//山东 15
         "6-10-15" => 10.21, "6-20-15" => 20.22, "6-30-15" => 30.231, "6-50-15" => 50.25, "6-100-15" => 100.3, "6-200-15" => 200.3, "6-300-15" => 300.45, "6-500-15" => 500.75,//山东 15

+ 7 - 0
helper/refill/api/yl/hanwei_fs/config.php

@@ -101,6 +101,12 @@ class config
                 100 => 1440100,
                 100 => 1440100,
                 200 => 1440200,
                 200 => 1440200,
             ],
             ],
+            //江西
+            14 => [
+                50  => 1360050,
+                100 => 1360100,
+                200 => 1360200,
+            ],
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
             //广东
             //广东
@@ -169,6 +175,7 @@ class config
         "4-50-23" => 47.4, "4-100-23" => 94.8, "4-200-23" => 189.6,//四川 23
         "4-50-23" => 47.4, "4-100-23" => 94.8, "4-200-23" => 189.6,//四川 23
         "4-30-6" => 28.65, "4-50-6" => 47.75, "4-100-6" => 95.5, "4-200-6" => 191,//辽宁 6
         "4-30-6" => 28.65, "4-50-6" => 47.75, "4-100-6" => 95.5, "4-200-6" => 191,//辽宁 6
         "4-30-19" => 28.59, "4-50-19" => 47.65, "4-100-19" => 95.3, "4-200-19" => 190.6,//广东 19
         "4-30-19" => 28.59, "4-50-19" => 47.65, "4-100-19" => 95.3, "4-200-19" => 190.6,//广东 19
+        "4-50-14" => 47.25, "4-100-14" => 94.5, "4-200-14" => 189,//江西 14
 
 
         //电信
         //电信
         "6-30-11" => 28.2, "6-50-11" => 47, "6-100-11" => 94, "6-200-11" => 188,//浙江 11
         "6-30-11" => 28.2, "6-50-11" => 47, "6-100-11" => 94, "6-200-11" => 188,//浙江 11

+ 67 - 0
helper/refill/api/yl/meihan/RefillCallBack.php

@@ -0,0 +1,67 @@
+<?php
+namespace refill\meihan;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan/config.php');
+
+use refill;
+class RefillCallBack implements refill\IRefillCallBack
+{
+    public function verify($params): bool
+    {
+        $input = $params;
+        unset($input['sign']);
+        $sign = $this->sign($input);
+        if ($params['sign'] == $sign) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+
+    private function check_empty($value)
+    {
+        if (!isset($value))
+            return true;
+        if ($value === null)
+            return true;
+        if (trim($value) === "")
+            return true;
+
+        return false;
+    }
+
+    public function notify($params)
+    {
+        $status = intval($params['orderStatus']);
+        $order_sn = $params['outOrderId'];
+        $order_info = Model('vr_order')->getOrderInfoForNotify(['order_sn' => $order_sn]);
+        if (empty($order_info)) {
+            return [false, false, false,false];
+        }
+
+        $order_id = $order_info['order_id'];
+        if ($status === 2) {
+            $data['official_sn'] = strtolower($params['ext1']) == 'null' ? '' : $params['ext1'];
+            Model('refill_order')->edit($order_id, $data);
+            return [$order_id, true, false, true];
+        } elseif ($status === 3) {
+            return [$order_id, false, true, true];
+        } else {
+            return [$order_id, false, false, false];
+        }
+    }
+}

+ 155 - 0
helper/refill/api/yl/meihan/RefillPhone.php

@@ -0,0 +1,155 @@
+<?php
+
+namespace refill\meihan;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan/config.php');
+
+use refill;
+use Log;
+
+class RefillPhone extends refill\IRefillPhone
+{
+    public function __construct($cfgs)
+    {
+        parent::__construct($cfgs);
+    }
+
+    private function req_params(int $phone, int $amount, int $card_type, string $order_sn)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $order_sn;
+        $params['uuid'] = $phone;
+        $params['itemId'] = config::PRODUCT[$card_type][$amount];
+        $params['itemFace'] = $amount;
+        $params['callbackUrl'] = config::NOTIFY_URL;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        return $params;
+    }
+
+    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
+    {
+        $order_sn = $params['order_sn'];
+        $params = $this->req_params($card_no, $amount, $card_type, $order_sn);
+        if(empty($params['itemId'])) {
+            return [false, '商品编号错误', false];
+        }
+        $sign = $this->sign($params);
+        $params['sign'] = $sign;
+
+        $resp = http_request(config::ORDER_URL, $params, 'POST', false, config::ExtHeaders, $net_errno);
+
+        if (empty($resp)) {
+            return [false, '网络错误', true];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误', true];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['orderId'], false];
+            } elseif (in_array($resp['code'], config::ERRCODES, true)) {
+                return [false, $resp['msg'], false];
+            } elseif (in_array($resp['code'], ['-22', '-23', '-99'], true)) {
+                $net_errno = "HTTP-{$resp['code']}";
+                return [false, $resp['msg'], true];
+            } else {
+                $net_errno = "HTTP-998";
+                return [false, $resp['msg'], true];
+            }
+        }
+    }
+
+    public function query($refill_info)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $refill_info['order_sn'];
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::QUERY_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            }
+            elseif ($resp['code'] === '00')
+            {
+                $status = $resp['orderStatus'];
+                if ($status === '2') {
+                    $updata['official_sn'] = $resp['ext1'];
+                    Model('refill_order')->edit($refill_info['order_id'], $updata);
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($status === '3') {
+                    $order_state = ORDER_STATE_CANCEL;
+                } elseif ($status === '1') {
+                    $order_state = ORDER_STATE_SEND;
+                } elseif ($status === '4' && (time() - $refill_info['commit_time'] >= 600)) {
+                    $order_state = ORDER_STATE_NOEXIST;
+                } else {
+                    return [false, $resp['msg']];
+                }
+                return [true, $order_state];
+            }
+            else
+            {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    public function balance()
+    {
+        $params['appId'] = config::APP_ID;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::BALANCE_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['balance']];
+            } else {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    /**
+     * 获取毫秒级别的时间戳
+     */
+    private function get_millisecond()
+    {
+        list($usec, $sec) = explode(" ", microtime());
+        return round($usec*1000);
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+}

+ 37 - 0
helper/refill/api/yl/meihan/config.php

@@ -0,0 +1,37 @@
+<?php
+
+
+namespace refill\meihan;
+
+use mtopcard;
+class config
+{
+    const ORDER_URL = 'http://47.106.88.10:8911/api/hf/order/submit';
+    const QUERY_URL = 'http://47.106.88.10:8911/api/order/query';
+    const BALANCE_URL = 'http://47.106.88.10:8911/api/account/balance';
+
+    const APP_ID = '9m4wZd7bwa';
+    const APP_SECRET = 'JhKfNeYrzwtHBUdj';
+    const NOTIFY_URL = BASE_SITE_URL . "/mobile/callback/refill_meihan.php";
+
+    const PRODUCT = [
+        mtopcard\ChinaMobileCard => [
+            50  => 100162,
+            100 => 100163,
+            200 => 100164,
+        ],
+        mtopcard\ChinaUnicomCard => [
+            30  => 100165,
+            50  => 100166,
+            100 => 100167,
+            200 => 100168,
+        ],
+        mtopcard\ChinaTelecomCard => [
+            50  => 100170,
+            100 => 100171,
+            200 => 100172,
+        ],
+    ];
+    const ExtHeaders = ['Content-Type:application/x-www-form-urlencoded;charset=utf-8'];
+    const ERRCODES = ['-10', '-12', '-13', '-14', '-15', '-16', '-18', '-21'];
+}

+ 16 - 0
helper/refill/api/yl/meihan/商品编码.txt

@@ -0,0 +1,16 @@
+全国移动   折扣965(0095+纯网厅)
+50:100162
+100:100163
+200:100164
+全国移动小面值   折扣95
+10:100269
+20:100270
+全国联通  折扣94   (11010332R开头流水)
+30:100165
+50:100166
+100:100167
+200:100168
+全国电信(暂时先配置965  目前不正常)
+50:100170
+100:100171
+200:100172

+ 15 - 0
helper/refill/api/yl/meihan/开户信息.txt

@@ -0,0 +1,15 @@
+后台地址:http://47.106.88.10:8888
+帐号:BJYLWT
+密码:742326
+二级密码:TBvO2932
+appId:9m4wZd7bwa
+appSecret:JhKfNeYrzwtHBUdj
+后台-商品列表,可查看已配置商品信息
+后台-安全中心,可配置IP白名单
+接口文档:https://www.showdoc.com.cn/1686453783298366/7925312871840290
+话费直充接口:http://47.106.88.10:8911/api/hf/order/submit
+通用直充接口:http://47.106.88.10:8911/api/order/submit
+卡密提取接口:http://47.106.88.10:8911/api/card/get
+查询接口接口:http://47.106.88.10:8911/api/order/query
+余额查询接口:http://47.106.88.10:8911/api/account/balance
+椰林网厅账户

+ 67 - 0
helper/refill/api/yl/meihan_fs/RefillCallBack.php

@@ -0,0 +1,67 @@
+<?php
+namespace refill\meihan_fs;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan_fs/config.php');
+
+use refill;
+class RefillCallBack implements refill\IRefillCallBack
+{
+    public function verify($params): bool
+    {
+        $input = $params;
+        unset($input['sign']);
+        $sign = $this->sign($input);
+        if ($params['sign'] == $sign) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+
+    private function check_empty($value)
+    {
+        if (!isset($value))
+            return true;
+        if ($value === null)
+            return true;
+        if (trim($value) === "")
+            return true;
+
+        return false;
+    }
+
+    public function notify($params)
+    {
+        $status = intval($params['orderStatus']);
+        $order_sn = $params['outOrderId'];
+        $order_info = Model('vr_order')->getOrderInfoForNotify(['order_sn' => $order_sn]);
+        if (empty($order_info)) {
+            return [false, false, false,false];
+        }
+
+        $order_id = $order_info['order_id'];
+        if ($status === 2) {
+            $data['official_sn'] = strtolower($params['ext1']) == 'null' ? '' : $params['ext1'];
+            Model('refill_order')->edit($order_id, $data);
+            return [$order_id, true, false, true];
+        } elseif ($status === 3) {
+            return [$order_id, false, true, true];
+        } else {
+            return [$order_id, false, false, false];
+        }
+    }
+}

+ 173 - 0
helper/refill/api/yl/meihan_fs/RefillPhone.php

@@ -0,0 +1,173 @@
+<?php
+
+namespace refill\meihan_fs;
+
+require_once(BASE_HELPER_RAPI_PATH . '/meihan_fs/config.php');
+
+use refill;
+use Log;
+
+class RefillPhone extends refill\IRefillPhone
+{
+    public function __construct($cfgs)
+    {
+        parent::__construct($cfgs);
+    }
+
+    public function goods($quality,int $amount,int $card_type,$regin_no,$other)
+    {
+        [$goods_id, $price] = parent::goods($quality,$amount,$card_type,$regin_no,$other);
+        if($goods_id <= 0) return [0,0];
+        $key = "{$card_type}-{$amount}-{$regin_no}";
+        $price = config::Price[$key];
+        if(empty($price)) {
+            Log::record("channel cannot find price where name={$this->mName}, goods_id = {$goods_id} card_type={$card_type} amount={$amount} regin_no={$regin_no}",Log::ERR);
+            return [0,0];
+        } else {
+            return [$goods_id,ncPriceFormat($price)];
+        }
+    }
+
+    private function req_params(int $phone, int $amount, int $card_type, string $order_sn, $regin_no)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $order_sn;
+        $params['uuid'] = $phone;
+        $params['itemId'] = config::PRODUCT[$card_type][$regin_no][$amount];
+        $params['itemFace'] = $amount;
+        $params['callbackUrl'] = config::NOTIFY_URL;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        return $params;
+    }
+
+    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
+    {
+        $regin_no = $params['regin_no'] ?? -1;
+        if($regin_no <= 0) {
+            return [false, '省份获取错误', false];
+        }
+        $order_sn = $params['order_sn'];
+        $params = $this->req_params($card_no, $amount, $card_type, $order_sn, $regin_no);
+        if(empty($params['itemId'])) {
+            return [false, '商品编号错误', false];
+        }
+        $sign = $this->sign($params);
+        $params['sign'] = $sign;
+
+        $resp = http_request(config::ORDER_URL, $params, 'POST', false, config::ExtHeaders, $net_errno);
+
+        if (empty($resp)) {
+            return [false, '网络错误', true];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误', true];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['orderId'], false];
+            } elseif (in_array($resp['code'], config::ERRCODES, true)) {
+                return [false, $resp['msg'], false];
+            } elseif (in_array($resp['code'], ['-22', '-23', '-99'], true)) {
+                $net_errno = "HTTP-{$resp['code']}";
+                return [false, $resp['msg'], true];
+            } else {
+                $net_errno = "HTTP-998";
+                return [false, $resp['msg'], true];
+            }
+        }
+    }
+
+    public function query($refill_info)
+    {
+        $params['appId'] = config::APP_ID;
+        $params['outOrderId'] = $refill_info['order_sn'];
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::QUERY_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            }
+            elseif ($resp['code'] === '00')
+            {
+                $status = $resp['orderStatus'];
+                if ($status === '2') {
+                    $updata['official_sn'] = $resp['ext1'];
+                    Model('refill_order')->edit($refill_info['order_id'], $updata);
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($status === '3') {
+                    $order_state = ORDER_STATE_CANCEL;
+                } elseif ($status === '1') {
+                    $order_state = ORDER_STATE_SEND;
+                } elseif ($status === '4' && (time() - $refill_info['commit_time'] >= 600)) {
+                    $order_state = ORDER_STATE_NOEXIST;
+                } else {
+                    return [false, $resp['msg']];
+                }
+                return [true, $order_state];
+            }
+            else
+            {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    public function balance()
+    {
+        $params['appId'] = config::APP_ID;
+        $params['timestamp'] = date("YmdHis").$this->get_millisecond();
+        $params['sign'] = $this->sign($params);
+
+        $resp = http_request(config::BALANCE_URL, $params, 'POST', false, config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '网络错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '网络错误'];
+            } elseif ($resp['code'] === '00') {
+                return [true, $resp['balance']];
+            } else {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    /**
+     * 获取毫秒级别的时间戳
+     */
+    private function get_millisecond()
+    {
+        list($usec, $sec) = explode(" ", microtime());
+        return round($usec*1000);
+    }
+
+    private function sign($params)
+    {
+        $params['appSecret'] = config::APP_SECRET;
+        ksort($params);
+        $content = '';
+        foreach ($params as $key => $value) {
+            if($this->check_empty($value) === false) {
+                $content .= "{$key}={$value}&";
+            }
+        }
+        $content = rtrim($content, '&');
+        return md5($content);
+    }
+}

+ 137 - 0
helper/refill/api/yl/meihan_fs/config.php

@@ -0,0 +1,137 @@
+<?php
+
+
+namespace refill\meihan_fs;
+
+use mtopcard;
+class config
+{
+    const ORDER_URL = 'http://47.106.88.10:8911/api/hf/order/submit';
+    const QUERY_URL = 'http://47.106.88.10:8911/api/order/query';
+    const BALANCE_URL = 'http://47.106.88.10:8911/api/account/balance';
+
+    const APP_ID = 'YUCtl1U1wz';
+    const APP_SECRET = 'MpEjJRiCIlAkYoWm';
+    const NOTIFY_URL = BASE_SITE_URL . "/mobile/callback/refill_meihan_fs.php";
+
+    const ExtHeaders = ['Content-Type:application/x-www-form-urlencoded;charset=utf-8'];
+    const ERRCODES = ['-10', '-12', '-13', '-14', '-15', '-16', '-18', '-21'];
+
+    const PRODUCT = [
+        mtopcard\ChinaMobileCard => [
+            //江苏
+            10 => [
+                30  => 100173,
+                50  => 100174,
+                100 => 100175,
+                200 => 100176,
+            ],
+            //贵州
+            24 => [
+                30  => 100177,
+                50  => 100178,
+                100 => 100179,
+                200 => 100180,
+            ],
+            //福建
+            13 => [
+                30  => 100181,
+                50  => 100182,
+                100 => 100183,
+                200 => 100184,
+            ],
+            //云南
+            25 => [
+                30  => 100189,
+                50  => 100190,
+                100 => 100191,
+                200 => 100192,
+            ],
+            //广西
+            20 => [
+                30  => 100193,
+                50  => 100194,
+                100 => 100195,
+                200 => 100196,
+            ],
+            //江西
+            14 => [
+                50  => 100337,
+                100 => 100338,
+                200 => 100339,
+            ],
+        ],
+
+        mtopcard\ChinaTelecomCard => [
+            //福建
+            13 => [
+                30  => 100201,
+                50  => 100202,
+                100 => 100203,
+                200 => 100204,
+            ],
+            //湖南
+            18 => [
+                30  => 100248,
+                50  => 100249,
+                100 => 100250,
+                200 => 100251,
+            ],
+            //四川
+            23 => [
+                30  => 100197,
+                50  => 100198,
+                100 => 100199,
+                200 => 100200,
+            ],
+            //广东
+            19 => [
+                30  => 100220,
+                50  => 100221,
+                100 => 100222,
+                200 => 100223,
+            ],
+            //江苏
+            10 => [
+                30  => 100209,
+                50  => 100210,
+                100 => 100211,
+                200 => 100212,
+            ],
+            //新疆
+            31 => [
+                30  => 100258,
+                50  => 100259,
+                100 => 100260,
+                200 => 100261,
+            ],
+            //海南
+            21 => [
+                30  => 100265,
+                50  => 100266,
+                100 => 100267,
+                200 => 100268,
+            ],
+        ],
+    ];
+
+    //key格式 卡类型-面值-regin_no
+    const Price = [
+        //移动
+        "4-30-10" => 28.35, "4-50-10" => 47.25, "4-100-10" => 94.5, "4-200-10" => 189,//江苏 10
+        "4-30-24" => 27.6, "4-50-24" => 46, "4-100-24" => 92, "4-200-24" => 184,//贵州 24
+        "4-30-13" => 28.05, "4-50-13" => 46.75, "4-100-13" => 93.5, "4-200-13" => 187,//福建 13
+        "4-30-25" => 27.9, "4-50-25" => 46.5, "4-100-25" => 93, "4-200-25" => 186,//云南 25
+        "4-30-20" => 28.05, "4-50-20" => 46.75, "4-100-20" => 93.5, "4-200-20" => 187,//广西 20
+        "4-50-14" => 46.75, "4-100-14" => 93.5, "4-200-14" => 187,//江西 14
+
+        //电信
+        "6-30-13" => 27.75, "6-50-13" => 46.25, "6-100-13" => 92.5, "6-200-13" => 185,//福建 13
+        "6-30-18" => 28.05, "6-50-18" => 46.75, "6-100-18" => 93.5, "6-200-18" => 187,//湖南 18
+        "6-30-23" => 27.75, "6-50-23" => 46.25, "6-100-23" => 92.5, "6-200-23" => 185,//四川 23
+        "6-30-19" => 28.2, "6-50-19" => 47, "6-100-19" => 94, "6-200-19" => 188,//广东 19
+        "6-30-10" => 28.05, "6-50-10" => 46.75, "6-100-10" => 93.5, "6-200-10" => 187,//江苏 10
+        "6-30-31" => 27.75, "6-50-31" => 46.25, "6-100-31" => 92.5, "6-200-31" => 185,//新疆 31
+        "6-30-21" => 27.75, "6-50-21" => 46.25, "6-100-21" => 92.5, "6-200-21" => 185,//海南 21
+    ];
+}

+ 81 - 0
helper/refill/api/yl/meihan_fs/商品编码.txt

@@ -0,0 +1,81 @@
+江苏移动分省(暂时配置945,目前不正常)
+30:100173
+50:100174
+100:100175
+200:100176
+
+贵州移动分省    折扣92
+30:100177
+50:100178
+100:100179
+200:100180
+
+福建移动分省   折扣935
+30:100181
+50:100182
+100:100183
+200:100184
+
+云南移动分省    折扣93
+30:100189
+50:100190
+100:100191
+200:100192
+
+广西移动分省    折扣935
+30:100193
+50:100194
+100:100195
+200:100196
+
+江西移动分省    折扣935
+50:100337
+100:100338
+200:100339
+
+
+
+
+
+
+福建电信分省   折扣925
+30:100201
+50:100202
+100:100203
+200:100204
+
+湖南电信分省   折扣935
+30:100248
+50:100249
+100:100250
+200:100251
+
+四川电信分省   折扣925
+30:100197
+50:100198
+100:100199
+200:100200
+
+广东电信分省   折扣94
+30:100220
+50:100221
+100:100222
+200:100223
+
+江苏电信分省  折扣935
+30:100209
+50:100210
+100:100211
+200:100212
+
+新疆电信分省  折扣925
+30:100258
+50:100259
+100:100260
+200:100261
+
+海南电信分省  折扣925
+30:100265
+50:100266
+100:100267
+200:100268

+ 15 - 0
helper/refill/api/yl/meihan_fs/开户信息.txt

@@ -0,0 +1,15 @@
+后台地址:http://47.106.88.10:8888
+帐号:BJYLFS
+密码:143259
+二级密码:qqMa9832
+appId:YUCtl1U1wz
+appSecret:MpEjJRiCIlAkYoWm
+后台-商品列表,可查看已配置商品信息
+后台-安全中心,可配置IP白名单
+接口文档:https://www.showdoc.com.cn/1686453783298366/7925312871840290
+话费直充接口:http://47.106.88.10:8911/api/hf/order/submit
+通用直充接口:http://47.106.88.10:8911/api/order/submit
+卡密提取接口:http://47.106.88.10:8911/api/card/get
+查询接口接口:http://47.106.88.10:8911/api/order/query
+余额查询接口:http://47.106.88.10:8911/api/account/balance
+椰林网厅账户

+ 2 - 0
helper/refill/api/yl/ruixunda/config.php

@@ -47,6 +47,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 1 - 1
helper/refill/api/yl/ruixunda_fs/config.php

@@ -149,7 +149,7 @@ class config
     const Price = [
     const Price = [
         //移动
         //移动
         "4-30-24" => 28.26, "4-50-24" => 47.1, "4-100-24" => 94.2, "4-200-24" => 188.4,//贵州 24
         "4-30-24" => 28.26, "4-50-24" => 47.1, "4-100-24" => 94.2, "4-200-24" => 188.4,//贵州 24
-        "4-30-10" => 28.11, "4-50-10" => 46.85, "4-100-10" => 93.7, "4-200-10" => 187.4,//江苏 10
+        "4-30-10" => 28.11, "4-50-10" => 47.1, "4-100-10" => 94.2, "4-200-10" => 188.4,//江苏 10
         "4-30-15" => 28.5, "4-50-15" => 47.5, "4-100-15" => 95, "4-200-15" => 190,//山东 15
         "4-30-15" => 28.5, "4-50-15" => 47.5, "4-100-15" => 95, "4-200-15" => 190,//山东 15
         "4-30-13" => 28.26, "4-50-13" => 47.1, "4-100-13" => 94.2, "4-200-13" => 188.4,//福建 13
         "4-30-13" => 28.26, "4-50-13" => 47.1, "4-100-13" => 94.2, "4-200-13" => 188.4,//福建 13
         "4-30-25" => 27.96, "4-50-25" => 46.6, "4-100-25" => 93.2, "4-200-25" => 186.4,//云南 25
         "4-30-25" => 27.96, "4-50-25" => 46.6, "4-100-25" => 93.2, "4-200-25" => 186.4,//云南 25

+ 2 - 0
helper/refill/api/yl/weixue/config.php

@@ -48,6 +48,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 2 - 0
helper/refill/api/yl/yuewen/config.php

@@ -45,6 +45,8 @@ class config
             ],
             ],
         mtopcard\ChinaTelecomCard =>
         mtopcard\ChinaTelecomCard =>
             [
             [
+                10  => '101721',
+                20  => '101722',
                 30  => '101723',
                 30  => '101723',
                 50  => '101724',
                 50  => '101724',
                 100 => '101725',
                 100 => '101725',

+ 1 - 0
helper/refill/api/yl/yunchonggongfs/config.php

@@ -49,5 +49,6 @@ class config
         "6-30-31" => 28.05, "6-50-31" => 46.75, "6-100-31" => 93.5, "6-200-31" => 187,//新疆 31
         "6-30-31" => 28.05, "6-50-31" => 46.75, "6-100-31" => 93.5, "6-200-31" => 187,//新疆 31
         "6-30-10" => 28.05, "6-50-10" => 46.75, "6-100-10" => 93.5, "6-200-10" => 187,//江苏 10
         "6-30-10" => 28.05, "6-50-10" => 46.75, "6-100-10" => 93.5, "6-200-10" => 187,//江苏 10
         "6-30-13" => 28.05, "6-50-13" => 46.75, "6-100-13" => 93.5, "6-200-13" => 187,//福建 13
         "6-30-13" => 28.05, "6-50-13" => 46.75, "6-100-13" => 93.5, "6-200-13" => 187,//福建 13
+        "6-30-21" => 28.05, "6-50-21" => 46.75, "6-100-21" => 93.5, "6-200-21" => 187,//海南 21
     ];
     ];
 }
 }

+ 3 - 1
helper/refill/api/yl/ziyugui/config.php

@@ -41,10 +41,12 @@ class config
             200 => 2000200,
             200 => 2000200,
         ],
         ],
         mtopcard\ChinaTelecomCard => [
         mtopcard\ChinaTelecomCard => [
+            10  => 3000010,
+            20  => 3000020,
             30  => 3000030,
             30  => 3000030,
             50  => 3000050,
             50  => 3000050,
             100 => 3000100,
             100 => 3000100,
             200 => 3000200,
             200 => 3000200,
         ],
         ],
     ];
     ];
-}
+}

+ 4 - 0
mobile/callback/refill_meihan.php

@@ -0,0 +1,4 @@
+<?php
+
+refill\util::push_notify('meihan',$_POST);
+echo ('ok');

+ 4 - 0
mobile/callback/refill_meihan_fs.php

@@ -0,0 +1,4 @@
+<?php
+
+refill\util::push_notify('meihan_fs',$_POST);
+echo ('ok');

+ 2 - 0
mobile/signature.php

@@ -9,10 +9,12 @@
 $data = json_encode($_POST);
 $data = json_encode($_POST);
 $sign = $_SERVER['HTTP_SIGN'];
 $sign = $_SERVER['HTTP_SIGN'];
 $addr = $_SERVER['REMOTE_ADDR'];
 $addr = $_SERVER['REMOTE_ADDR'];
+$content = $_SERVER['post_content'];
 $xmldata=file_get_contents("php://input");
 $xmldata=file_get_contents("php://input");
 
 
 Log::record("request ip:{$addr}",Log::DEBUG);
 Log::record("request ip:{$addr}",Log::DEBUG);
 Log::record("signature data : {$data}",Log::DEBUG);
 Log::record("signature data : {$data}",Log::DEBUG);
+Log::record("content data : {$content}",Log::DEBUG);
 Log::record("HTTP_SIGN : {$sign}",Log::DEBUG);
 Log::record("HTTP_SIGN : {$sign}",Log::DEBUG);
 Log::record("XML_DATA : {$xmldata}",Log::DEBUG);
 Log::record("XML_DATA : {$xmldata}",Log::DEBUG);
 echo ('SUCCESS');
 echo ('SUCCESS');

+ 28 - 0
test/TestRefill.php

@@ -3278,6 +3278,34 @@ class TestRefill extends TestCase
         $resp = $provider->balance();
         $resp = $provider->balance();
     }
     }
 
 
+    public function testMeihan()
+    {
+//        $provider = $this->getProvider('meihan');
+//        $resp = $provider->balance();
+//        $resp = $provider->add(18500608333, 5, 30, ['order_sn' => $this->make_sn()]);
+//        $resp = $provider->query(['order_sn' => '53841681808288816594']);
+
+        $body = '{"orderId":"230418165816651111","appId":"W33zTP9202","outOrderId":"53841681808288816594","sign":"b7bed78f436d7fccd6b59a77e58521fc","orderStatus":"3","completeTime":"20230418165816","orderDesc":"\u8ba2\u5355\u5931\u8d25"}';
+        $params = json_decode($body, true);
+        $provider = $this->getProvider('meihan', 'RefillCallBack');
+        $ret = $provider->verify($params);
+        $resp = $provider->notify($params);
+    }
+
+    public function testMeihan_fs()
+    {
+//        $provider = $this->getProvider('meihan_fs');
+//        $resp = $provider->balance();
+//        $resp = $provider->add(18074608795, 6, 30, ['order_sn' => $this->make_sn(), 'regin_no' => 18]);
+//        $resp = $provider->query(['order_sn' => '56911681870334278247']);
+
+        $body = '{"orderId":"230419101229102385","appId":"WtCDoePp9g","outOrderId":"56911681870334278247","sign":"91eb93d735dd468ab24e8cb6c7c4256f","orderStatus":"3","completeTime":"20230419101628","orderDesc":"\u8ba2\u5355\u5931\u8d25"}';
+        $params = json_decode($body, true);
+        $provider = $this->getProvider('meihan_fs', 'RefillCallBack');
+        $ret = $provider->verify($params);
+        $resp = $provider->notify($params);
+    }
+
     public function testAmingjd()
     public function testAmingjd()
     {
     {
 //        $provider = new refill\amingjd\RefillPhone([]);
 //        $provider = new refill\amingjd\RefillPhone([]);

+ 27 - 0
test/TestRefillCommand.php

@@ -35,6 +35,33 @@ class TestRefillCommand extends TestCase
         $refill->restat($dates);
         $refill->restat($dates);
     }
     }
 
 
+    //docker-compose run -d phpcli php /var/www/html/phpunit-9.2.5.phar --filter "/(TestRefillCommand::testClearStat)( .*)?$/" --test-suffix TestRefillCommand.php /var/www/html/test
+    public function testClearStat()
+    {
+        $clear_stat = function ($date)
+        {
+            $start_date = strtotime($date);
+            $end_date  = $start_date + 86400;
+
+            $clear = new refill\order_clear();
+            $clear->clear($start_date,$end_date);
+
+            $sDate = date('Y-m-d',$start_date);
+            $refill = new statistics\stat_refill();
+            $refill->restat([$sDate]);
+        };
+
+        $dates = [
+            '2023-04-12',
+            '2023-04-14'
+        ];
+        foreach ($dates as $date)
+        {
+            $clear_stat($date);
+        }
+    }
+
+
     //docker-compose run -d phpcli php /var/www/html/phpunit-9.2.5.phar --filter "/(TestRefillCommand::testRefillStatYesterday)( .*)?$/" --test-suffix TestRefillCommand.php /var/www/html/test
     //docker-compose run -d phpcli php /var/www/html/phpunit-9.2.5.phar --filter "/(TestRefillCommand::testRefillStatYesterday)( .*)?$/" --test-suffix TestRefillCommand.php /var/www/html/test
     public function testRefillStatYesterday()
     public function testRefillStatYesterday()
     {
     {

+ 6 - 0
test/TestRefillYl.php

@@ -974,4 +974,10 @@ class TestRefillYl extends TestCase
         $provider = $this->getProvider('jiaqi_fs');
         $provider = $this->getProvider('jiaqi_fs');
         $resp = $provider->balance();
         $resp = $provider->balance();
     }
     }
+
+    public function testMeihan()
+    {
+        $provider = $this->getProvider('meihan');
+        $resp = $provider->balance();
+    }
 }
 }