精华内容
下载资源
问答
  • 小程序提现

    万次阅读 2018-03-19 15:06:33
  • 微信小程序提现源码

    2019-08-06 14:44:01
    微信小程序提现本人亲测可用,并且项目已经上线,大家放心下载吧
  • 小程序提现到零钱

    2019-09-24 22:30:00
    小程序提现到零钱的官方文档,建议先看下,再看下面的代码 地址:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1 付款规则: 调用接口所需参数,除下图中所需参数外,还需要小程序...

    一 . 小程序提现到零钱的官方文档,建议先看下,再看下面的代码

    地址:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1

     付款规则:

     

    调用接口所需参数,除下图中所需参数外,还需要小程序的支付key,证书。这两样在商户平台可以查看到,请提前准备好:

     

     

    二 . 小程序提现到零钱不同于小程序退款,调用的是不同的微信接口,我的博客园也记载了小程序的退款,如有需要,前往查看。

    三 . 准备好所需的参数后,只需要把我代码中对应的参数更改为你的,就可以用了 

     

        //微信小程序提现到零钱
        public function wxWithdraw(Request $request)
        {
            //$openid = $request->param('wxopenid');
            $openid = '接收提现的用户openid';
            $amount = $request->param('w_money');
    
            $data = [
                'mch_appid' => '小程序appid',
                'mchid' => '小程序商户号',//商户号
                'nonce_str' => self::getNonceStr(),//随机字符串,长度要求在32位以内
                'partner_trade_no' => self::create_order_no(),//商户订单号
                'openid' => $openid,
                'check_name' => 'NO_CHECK',
                'amount' => 30,//标价金额,单位分
                'desc' => '提现的描述',
                'spbill_create_ip' => self::getip()//终端IP
            ];
    
            $data['sign'] = self::makeSign($data);
    
            $xmldata = self::array2xml($data);
    
            $url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
            $res = self::curl_post_ssl2($url, $xmldata);
    
            if (empty($res)) {
                return json(['status' => 0, 'data' => '', 'msg' => '连接失败']);
            }
    
            $content = self::xml2array($res);
            p($content);//打印提现结果
        }
    
        //商户系统内部订单号,要求32个字符内
        public function getNonceStr($length = 32) {
            $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
            $str   = "";
            for ( $i = 0; $i < $length; $i++ )  {
                $str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);
            }
            return $str;
        }
    
        //生成唯一订单号(简化版)
        public function create_order_no() {
            $order_no = substr(date('YmdHis'),2).rand(10000, 99999);
            return $order_no;
        }
    
        //获取IP地址
        public function getip() {
            static $ip = '';
            $ip = $_SERVER['REMOTE_ADDR'];
            if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {
                $ip = $_SERVER['HTTP_CDN_SRC_IP'];
            } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
                $ip = $_SERVER['HTTP_CLIENT_IP'];
            } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR']matches)) {
                foreach ($matches[0] AS $xip) {
                    if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
                        $ip = $xip;
                        break;
                    }
                }
            }
               return $ip;
           }
    
        //生成签名
        public function makeSign($data){
            //获取微信支付秘钥
            $key = "小程序支付key";//这个在微信商户平台可以查看
            // 去空
            $data=array_filter($data);
            //签名步骤一:按字典序排序参数
            ksort($data);
            $string_a=http_build_query($data);
            $string_a=urldecode($string_a);
            //签名步骤二:在string后加入KEY
            $string_sign_temp=$string_a."&key=".$key;
            //签名步骤三:MD5加密
            $sign = md5($string_sign_temp);
            // 签名步骤四:所有字符转为大写
            $result=strtoupper($sign);
            return $result;
        }
    
    
        public function array2xml($arr, $level = 1)
        {
            $s = $level == 1 ? "<xml>" : '';
            foreach ($arr as $tagname => $value) {
                if (is_numeric($tagname)) {
                    $tagname = $value['TagName'];
                    unset($value['TagName']);
                }
                if (!is_array($value)) {
                    $s .= "<{$tagname}>" . (!is_numeric($value) ? '<![CDATA[' : '') . $value . (!is_numeric($value) ? ']]>' : '') . "</{$tagname}>";
                } else {
                    $s .= "<{$tagname}>" . $this->array2xml($value, $level + 1) . "</{$tagname}>";
                }
            }
    
            $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
            return $level == 1 ? $s . "</xml>" : $s;
        }
    
    
      
        public function curl_post_ssl2($url, $xmldata, $second=30,$aHeader=array()){
            $isdir = str_replace('Api.php','',__FILE__) . 'cert/';//这个是证书,需要到微信商户平台下载,然后放到服务器上
    
            $ch = curl_init();
            curl_setopt($ch,CURLOPT_TIMEOUT,$second);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
            //这里设置代理,如果有的话
            //curl_setopt($ch,CURLOPT_PROXY, '10.206.30.98');
            //curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
            curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
    
            curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型
            curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置
            curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型
            curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置
            curl_setopt($ch, CURLOPT_CAINFO, 'PEM');
            //curl_setopt($ch, CURLOPT_CAINFO, $isdir . 'rootca.pem');这个是可选的
    
            curl_setopt($ch,CURLOPT_POST, 1);
            curl_setopt($ch,CURLOPT_POSTFIELDS,$xmldata);
            $data = curl_exec($ch);
            if(curl_errno($ch)){
                echo 'Error+'.curl_error($ch);
            }
            curl_close($ch);
            return $data;
        }
    
      //将xml转为array
        public function xml2array($xml){
              //禁止引用外部xml实体
           libxml_disable_entity_loader(false);
           $result= json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
           return $result;
       }
    

      

      

    转载于:https://www.cnblogs.com/qczy/p/10942244.html

    展开全文
  • 那就不再使用关注公众号这种影响用户体验的方法了小程序提现使用的是企业付款接口(这什么烂文档,这个接口印象中已经出现很久了,因为没有在小程序开发中就没太留意,产生了小程序不能做提现的错觉,虽然...

    最近发现某些小程序有了提现功能,原来小程序是不支持提现的,所以当初实现方法是打算让用户去关注公众号,再从公众号提现,当然前提要公众号跟小程序使用同一的unionid来标记唯一用户,既然现在支持小程序直接提现了,那就不再使用关注公众号这种影响用户体验的方法了

    小程序提现使用的是企业付款接口(这什么烂文档,这个接口印象中已经出现很久了,因为没有在小程序开发中就没太留意,产生了小程序不能做提现的错觉,虽然也不可能单独出现在小程序文档中,你好歹也提提吧),首先申请商户号,现在使用企业付款接口也需要开通条件

    开通商户号并达到开通条件后,就是接口的使用了,无非就是一个http请求罢了,根据之前做小程序支付调用统一下单接口的经验,这里也理所当然的使用python的http请求库requests,这里先附上统一下单接口的代码(请注意使用的库)

    #python 3.5.1

    from xml.etree.ElementTree import Element, tostring

    import requests,hashlib,random

    url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'

    data = {

    'appid': APPID,#申请商户号后提供

    'mch_id': MCH_ID,#申请商户号后提供

    'nonce_str': get_nonce_str(),

    'body': '测试',

    'out_trade_no': get_out_trade_no(),

    'total_fee': 1,

    'spbill_create_ip': get_host(), #服务器ip

    'notify_url': 'http://www.weixin.qq.com/wxpay/pay.php',#暂时没用到,微信以http请求方式将支付结果发到这个请求地址上

    'trade_type': 'JSAPI',

    'openid': openid,

    }

    # 签名算法

    data['sign'] = wx_sign(data)

    xml_data = bytes.decode(tostring(dict_to_xml_data(data)))

    response = requests.post(url=url, data=xml_data)

    ----------------------------------------------------------------

    # 签名算法

    def wx_sign(proto_data):

    '''根据数组的key排序,并拼接加密'''

    a = ''

    for key in (sorted(proto_data.keys())):

    if a == '':

    a = key + '=' + str(proto_data[key])

    else:

    a = a + '&' + key + '=' + str(proto_data[key])

    a = a + '&key=' + KEY

    # md5加密

    a = hashlib.md5(a.encode('utf-8')).hexdigest().upper()

    return a

    def dict_to_xml_data(data):

    # dict to xml

    elem = Element('xml')

    for key, value in data.items():

    child = Element(key)

    child.text = str(value)

    elem.append(child)

    return elem

    def get_out_trade_no():

    '''商户订单号'''

    return time.strftime("%Y%m%d%H%M%S", time.localtime()) + str(uuid.uuid1())[:8]

    def get_nonce_str():

    '''随机字符串'''

    return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(32))

    理所当然的企业付款接口的写法,requests.post()有一个cert的参数,就是微信提供的私钥和公钥证书,据说requests还不支持p12的证书

    url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'

    data = {

    'mch_appid': APPID,

    'mchid': MCH_ID,

    'nonce_str': get_nonce_str(),

    'partner_trade_no': get_out_trade_no(),

    'check_name': 'NO_CHECK',

    'amount': 100,

    'spbill_create_ip': get_host(),

    'desc': u'测试',

    'openid': openid,

    }

    data['sign'] = wx_sign(data)

    xml_data = bytes.decode(tostring(dict_to_xml_data(data)))

    #logger.debug('xml_data=======' + xml_data)

    response = requests.post(url=url, data=xml_data,cert=('/home/pem/apiclient_cert.pem','/home/pem/apiclient_key.pem'))

    运行后报【参数错误:描述信息存在非UTF8字符】,指的就是我desc写的内容有问题罗,尝试着把desc内容改成英文字母和数字,运行成功在手机微信的微信支付上可以看到入账信息,但是我这里的入账详情就是要写中文啊

    把发送前的xml打印出来看一下发现在xml中desc的内容为测试,接着把xml_data = bytes.decode(tostring(dict_to_xml_data(data)))改成xml_data = bytes.decode(tostring(dict_to_xml_data(data),encoding='utf8'))思路是将body换成utf8编码再发送,报了下面的错误

    File "/opt/rh/rh-python35/root/usr/lib64/python3.5/http/client.py", line 1127, in _send_request

    body = body.encode('iso-8859-1')

    UnicodeEncodeError: 'latin-1' codec can't encode characters in position 375-376: ordinal not in range(256)

    意思是说requests库发出请求body需以iso-8859来解码,根据错误信息跳到requests源码,body默认的编码为iso 8895-1,没有找到发送请求时改变编码的方式(如果发现requests能修改的小伙伴希望告知),只有修改response返回的编码方式

    # RFC 2616 Section 3.7.1 says that text default has a

    # default charset of iso-8859-1.

    body = body.encode('iso-8859-1')

    关键时刻只能曲线救国了,决定换一个http的请求库,在使用了urllib3发现有一样的问题,原来requests库就是在urllib3上封装的,最后使用urllib成功实现了,使用urllib库的棘手地方在于发送请求时带上证书,实现代码如下

    url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'

    data = {

    'mch_appid': APPID,

    'mchid': MCH_ID,

    'nonce_str': get_nonce_str(),

    'partner_trade_no': get_out_trade_no(),

    'check_name': 'NO_CHECK',

    'amount': 100,

    'spbill_create_ip': get_host(),

    'desc': u'测试',

    'openid': openid,

    }

    # 签名算法

    data['sign'] = wx_sign(data)

    xml_data = tostring(dict_to_xml_data(data), encoding='utf8') #这个地方加了utf8编码,并且返回byte数据

    from urllib import request as res

    import ssl

    context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)

    context.load_cert_chain(certfile='/home/pem/apiclient_cert.pem', keyfile='/home/pem/apiclient_key.pem')

    response = res.urlopen(url=url, data=xml_data, context=context)

    展开全文
  • 注:小程序提现需要申请的东西这里不详细介绍了,大伙应该都知道,咱们直接上代码; /** * 提现类 商户号提现至微信零钱 * Class Withdrawal * @package app\api\controller */ class Withdrawal{ function __...

    注:小程序提现需要申请的东西这里不详细介绍了,大伙应该都知道,咱们直接上代码;

    /**
     * 提现类   商户号提现至微信零钱
     * Class Withdrawal
     * @package app\api\controller
     */
    class Withdrawal{
        function __construct() {
            $this->appid = '';//你的小程序appid
            // 商户号
            $this->mch_id = ''; //你的商户号。找不到的在你的小程序里边的微信支付里边找,前提是你必须先开启你的微信支付
            // 支付秘钥
            $this->key = ''; //这个是你商户号的api秘钥,在产品中心里边找,
        }
            /**
         * [createNoncestr 生成随机字符串]
         * @param integer $length [长度]
         * @return [type]   [字母大小写加数字]
         */
        function createNoncestr($length =32){
            $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxyz0123456789";
            $str ="";
            for($i=0;$i<$length;$i++){
                $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);
            }
            return $str;
        }
    
        /**
         * [curl_post_ssl 发送curl_post数据]
         * @param [type] $url  [发送地址]
         * @param [type] $xmldata [发送文件格式]
         * @param [type] $second [设置执行最长秒数]
         * @param [type] $aHeader [设置头部]
         * @return [type]   [description]
         */
        function curl_post_ssl($url, $xmldata, $second = 30, $aHeader = array()){
            $isdir = $_SERVER['DOCUMENT_ROOT']."/cert/";//证书位置;绝对路径
            $ch = curl_init();//初始化curl
            curl_setopt($ch, CURLOPT_TIMEOUT, $second);//设置执行最长秒数
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
            curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 终止从服务端进行验证
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//
            curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型
            curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置
            curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型
            curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置
            curl_setopt($ch, CURLOPT_CAINFO, 'PEM');
            curl_setopt($ch, CURLOPT_CAINFO, $isdir . 'rootca.pem');
            if (count($aHeader) >= 1) {
                curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);//设置头部
            }
            curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
            curl_setopt($ch, CURLOPT_POSTFIELDS, $xmldata);//全部数据使用HTTP协议中的"POST"操作来发送
    
            $data = curl_exec($ch);//执行回话
            if ($data) {
                curl_close($ch);
                return $data;
            } else {
                $error = curl_errno($ch);
                echo "call faild, errorCode:$error\n";
                curl_close($ch);
                return false;
            }
        }
    
        /**
         * [sendMoney 企业付款到零钱]
         * @param [type] $amount  [发送的金额(分)目前发送金额不能少于1元]
         * @param [type] $re_openid [发送人的 openid]
         * @param string $desc  [企业付款描述信息 (必填)]
         * @param string $check_name [收款用户姓名 (选填)]
         * @return [type]    [description]
         */
        function sendMoney($amount,$uid,$withdrawal_id,$pic_id,$re_openid,$partner_trade_no='',$desc='第三巷提现到账',$check_name=''){
            $total_amount = (100) * $amount;
            $data=array(
                'mch_appid'=>$this->appid,//商户账号appid
                'mchid'=> $this->mch_id,//商户号
                'nonce_str'=>$this->createNoncestr(),//随机字符串
                'partner_trade_no'=> date('YmdHis').rand(1000, 9999),//商户订单号
                'openid'=> $re_openid,//用户openid
                'check_name'=>'NO_CHECK',//校验用户姓名选项,
                're_user_name'=> $check_name,//收款用户姓名
                'amount'=>$total_amount,//金额
                'desc'=> $desc,//企业付款描述信息
                'spbill_create_ip'=> '',//Ip地址
            );
    
            //生成签名算法
            $secrect_key=$this->key;///这个就是个API密码。MD5 32位。
            $data=array_filter($data);
            ksort($data);
            $str='';
            foreach($data as $k=>$v) {
                $str.=$k.'='.$v.'&';
            }
            $str.='key='.$secrect_key;
            $data['sign']=md5($str);
            //生成签名算法
            $xml=$this->arraytoxml($data);
            $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口
            $res=$this->curl_post_ssl($url,$xml);
            $ret=$this->xmltoarray($res);
            if($ret['return_code'] == 'SUCCESS' && $ret['result_code'] == 'SUCCESS'){
                Db::startTrans();
                try {
                    //扣除自提点余额
                    $sql = Db('ns_pickup_point')->where(['uid'=>$uid,'id'=>$pic_id])->setDec('balance_money',$amount);
                    //修改提现状态
                    $sql_1 = Db('ns_merchants_balance_withdraw')->where('id',$withdrawal_id)->update(['status'=>3]);
                    Db::commit();
                    if ($sql && $sql_1){
                        return 200;
                    }else{
                        return 400;
                    }
                }catch(\Exception $e){
                    // 回滚事务
                    Db::rollback();
                    return 402;
                }
    
            }else{
    //            $this->errorLog('微信付款到银行卡失败,appid:'.$this->appid,$ret);
                return 401;
            }
    //        $responseObj = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);
    //        echo $res= $responseObj->return_code; //SUCCESS 如果返回来SUCCESS,则发生成功,处理自己的逻辑
        }
    
        /**
         * [arraytoxml 将数组转换成xml格式(简单方法):]
         * @param [type] $data [数组]
         * @return [type]  [array 转 xml]
         */
        function arraytoxml($data){
            $str='<xml>';
            foreach($data as $k=>$v) {
                $str.='<'.$k.'>'.$v.'</'.$k.'>';
            }
            $str.='</xml>';
            return $str;
        }
        /*
     * 将xml转换成数组
     * @params xml $xml : xml数据
     * return array $data : 返回数组
     */
        function xmlToArray($xml)
        {
            //禁止引用外部xml实体
            libxml_disable_entity_loader(true);
            $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
            $val = json_decode(json_encode($xmlstring),true);
            return $val;
        }
     }
     直接调用提现类中的sendMoney()即可实现,返回成功内的那段业务代码你们可以自行封装看自己的具体需求调用即可
    
    
    展开全文
  • 那就不再使用关注公众号这种影响用户体验的方法了小程序提现使用的是企业付款接口(这什么烂文档,这个接口印象中已经出现很久了,因为没有在小程序开发中就没太留意,产生了小程序不能做提现的错觉,虽然...
  • 微信小程序提现

    千次阅读 2019-10-08 10:14:51
    * 微信提现(企业付款) */ @RequestMapping(value = "/weixinWithdraw", method = RequestMethod.POST) @ResponseBody public Object weixinWithdraw(String openId,Double cashMoney, HttpServle...
  • 开发商用微信小程序,必不可少的微信提现功能。 主要结构就是 js 下载后自己改吧改吧可以当做功能模块使用。api 接口用微信官网接口、这个东西研究了一天,实话说有些文档都是说的简单,实际使用还是要开发经验的。...
  • 用nodejs搭建的微信小程序的后台,如何实现提现到银行卡或者提现到零钱!
  • 商户号 及 绑定的 小程序或公众号 开通这个能力 开发注意事项 处理转账失败的情况 转账若返回, 系统正忙, 需要根据商户号(我方自定义的订单号)查询一次转账订单, 若订单不存在, 则重新发起, 若订单...
  • 1.首先我们要知道微信企业付款到零钱注意事项:(1)不支持给非实名用户打款;(2)给同一个实名用户付款,单笔单日限额5000/5000元;... 接下来向微信发送请求:调用微信的提现接口地址,传递必要的参...
  • } 3、API调用 /** * 进行微信提现操作 (企业付款至用户零钱) * @param openId * @param amout 提现金额 * @param partnerTradeNo 单号 * @param desc 备注 */ private EntPayResult getWithdrawal(String openId,...
  • @Autowired WeixinMiniProgramPayProperties weixinPayProperties; @Override public Map enterprice2User(String logKey, String orderNumber, String openId, String fee, String body) throws Excep...
  • 小程序商城系统配置商户PartnerId与商户PartnerKey、以及上传微信支付API证书。付款资金企业付款到零钱资金使用商户号余额资金。根据商户号的账户开通情况,实际出款账户有做区别:◆ 默认情况下,企业付款到零钱...
  • 微信小程序怎么提现到零钱?有个提现的功能,但是看了下小程序API没有看到关于提现的接口,所以不知道该怎么搞了
  • 最近做了一个小程序用到了微信支付及零钱提现功能。 准备工作,开发之前,我们需要有下面这些东西: appId 密钥(小程序配置界面) 商户号 api密钥(商家后台自己设置) 1,小程序代码实现 <view class='pay_...
  • 本文实例讲述了小程序微信退款功能实现方法。分享给大家供大家参考,具体如下:☹. 背景微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求当然,一种方式是登录 微信商户平台,在 交易...
  • 小程序nodejs企业付款到微信账户一、准备二、接口调用请求说明三、请求参数四、代码实现 一、准备 申请商户号,需要申请商户号的appid或商户号绑定的appid以及微信支付分配的商户号 二、接口调用请求说明 请求Url ...
  • 本教程是基于 “apifm-wxapi” 模块,教你快速实现小程序开发,所以你可能需要先了解以下知识点: 《创建 HelloWorld 项目》 《使用 “apifm-wxapi” 快速开发小程序》 《免费注册开通后台,获得专属域名》 本案例,...
  • 扫码进入小程序按照系统提示操作就可以获得0.3元红包,可以直接提现到微信账户。一、山海经异变收入来源有三种1、每升一级大概有一元的红包,满50元提现2、获得分红神兽,分红神兽有四种,分别是神兽鸿鹄:每天获得...
  • 申请微信收款商业码入口商业版收款码申请入口↓↓↓↓↓↓↓↓(点击上方小程序直接进入)商业版功能简介经营报表每日自动进行经营分析并发送报表,清晰掌握生意数据我的门店支持多门店收款,清晰管理各门店人员及权限...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 666
精华内容 266
关键字:

小程序提现