精华内容
下载资源
问答
  • 微信付款

    2017-04-18 08:02:36
    微信付款有两种重要形式:面对面的微信扫码付款、好友之间的微信转账。前者可以在右上角“+”下选择收付款中的付款,后者可以在与好友的通信界面最下方选择转账。
        微信付款有两种重要形式:面对面的微信扫码付款、好友之间的微信转账。前者可以在右上角“+”下选择收付款中的付款,后者可以在与好友的通信界面最下方选择转账。
    
    展开全文
  • 微信native支付, 微信JSAPI支付, 微信退款, 微信提现, 微信付款查询, 所有方法都已经封装实现, main方法可直接调用体验, maven项目
  • web端微信付款demo

    2019-01-03 10:41:37
    微信web端付款demo,支持微信付款,对于微信web端、app端以及H5付款都有参考作用
  • 微信付款asp.net

    2017-11-07 09:11:53
    一套完整版本的商城,同时可以在线购买和微信付款,启动页loadinit.aspx
  • 微信付款到零钱demo

    2019-01-31 15:57:13
    微信付款到零钱demo,可以看看。
  • 微信付款到零钱

    2017-11-14 16:23:57
    微信付款到零钱,可以直接将钱打入用户的“微信零钱”中,微信支付将做零钱入账消息通知,零钱收支明细会展示相应记录,注意配置证书的位置,证书获取时间较长呀!!
  • 有关于微信付款,具体是企业付款到微信零钱和企业付款到银行卡,银行包括17家
  • 支付宝微信付款码合二为一
  • java代码实现微信付款,退款,取消订单等操作,代码已经做了封装转,解压即用
  • 企业微信付款带个人银行卡,完美Deom ,配置好基本参数,直通车
  • 网页调起支付宝付款和微信付款

    千次阅读 2020-12-19 09:54:05
    网页调起支付宝付款和微信付款 昨天在指导客户制作付款网页的时候写了部分说明文档,觉得其中有很多对第一次接触这方面的人能有所帮助,在此分享一下 调起付款的步骤 1.获取微信code(支付宝是auth_code,以下统称...

    网页调起支付宝付款和微信付款

    昨天在指导客户制作付款网页的时候写了部分说明文档,觉得其中有很多对第一次接触这方面的人能有所帮助,在此分享一下

    调起付款的步骤

    1.获取微信code(支付宝是auth_code,以下统称code)

    不论是微信还是支付宝的code都是需要通过重定向获取的,其中需要拼接进微信公众号的appid(支付宝的需要自己去平台申请),然后 重定向跳转的网址 是你接受重定向信息的地方,网址的域名需要在管理后台的授权回调地址中配置,不然会跳转失败,具体的配置方法可以参考其他的文章,这里不做赘述。

    微信重定向网址:“https://open.weixin.qq.com/connect/oauth2/authorize?appid={{APPID}}&redirect_uri={{你的重定向页面网址}}&response_type=code&scope=snsapi_base&state=123&connect_redirect=1#wechat_redirect”
    支付宝重定向网址:“https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id={{APPID}}&scope=auth_base&redirect_uri={{你的重定向页面网址}}"

    跳转到重定向页面之后,通过getQueryVariable(variable)方法获取code,具体操作如下:

            var code = getQueryVariable("code");
            //这是一个现成的方法,直接拿过去用就行
            function getQueryVariable(variable) {
                var query = window.location.search.substring(1);
                var vars = query.split("&");
                for (var i = 0; i < vars.length; i++) {
                    var pair = vars[i].split("=");
                    if (pair[0] == variable) { return pair[1]; }
                }
                return (false);
            }
    

    2.通过code获取openid(支付宝叫user_id,以下统称为openid)

    这里说明一下,这里的opnid是不能在网页中直接获取的,你可以通过调用你的后端接口获取,不然得到的openid是没用的,我在下面贴上我最近做的一个案例获取openid的方式。

               $.ajax({
                    type: "post",
                    url: "GetOpenid.ashx",//我把调接口的地方写在这里,调用的是我们公司的后端接口
                    contentType: "application/x-www-form-urlencoded;charset=utf-8;",
                    data: { auth_code:code,appid:appid},
                    dataType: "text",
                    success: function (data) {
                        window.openid = data;
                    },
                    error: function (error) {
                        //alert("error=" + error);
                    }
                });
    

    3.获取商户信息

    既然是付款,那肯定需要有一个付款的对象,微信和支付宝付款都有商户号这一说的,以下是我获取商户号的代码:(这里因人而异,有些人是不需要获取的,主要看你调起统一下单接口的时候需不需要商户号的相关信息

         $.ajax({
            type: "post",
            url: "GetToken.ashx",
                contentType: "application/x-www-form-urlencoded;charset=utf-8;",
    		data: { store_no:store_no},
            dataType: "json",
                success: function (data) {
                    $(".shop-name").append(data["store_name"]);
                    window.sn = data["store_name"];
                    window.merchant_key = data["merchant_key"];
                    window.merchant_no = data["merchant_no"];			
            },
            error: function(error) {
                alert( error.responseText);
                 }
            });
    

    4.调取统一下单接口获取预支付信息

    微信:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
    在这里插入图片描述支付宝:https://opendocs.alipay.com/apis/api_49/alipay.open.mini.experience.query/
    在这里插入图片描述

    5.最后一步,调起支付

    获取到预支付信息之后再调起支付就很简单了,直接看代码:

          //支付宝
           AlipayJSBridge.call("tradePay", {
                              tradeNO: trade_no
                              },
                              function (data) {
                                  if ("9000" == data.resultCode) {
    							        alert("支付成功")
                                  }
    							  else {
                                        alert("支付失败")
                                  }
                            });
    
           //微信
           WeixinJSBridge.invoke(
                              'getBrandWCPayRequest', data,
                               function (res) {
                                 if (res.err_msg == "get_brand_wcpay_request:ok") {
                                        alert("支付成功")
                                 }
                                 else {
                                        alert("支付失败")
                                 }
                               }
            );
    

    6.支付成功

    微信:
    在这里插入图片描述
    支付宝:
    在这里插入图片描述
    7.参考案例
    联科在线(北京)科技有限公司 网页支付
    在这里插入图片描述

    总结

    不管是微信还是支付宝,其文档总是说的不甚明了,所以我在第一次接触这一块的时候也走了很多弯路,但是程序员不就是在一次次走弯路中成长的吗?加油哦!!!

    展开全文
  • vue-微信付款

    2019-07-09 15:20:03
    微信付款不需要初始化功能, 只需要在使用的时候调用就可以了 一. 引包 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,...

    微信支付方法

    • 微信付款不需要初始化功能, 只需要在使用的时候调用就可以了

    一. 引包

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1,user-scalable=no">
        <title></title>
        <script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js "></script>
      </head>
    
      <body>
        <div id="app"></div>
        <!-- built files will be auto injected -->
      </body>
    </html>
    
    

    二. 编写支付公共方法

    • 里面一些必传的参数, 是通过后台获取的
    // 微信支付的公共方法
    async function weChatPay(weChatPayData, payFormTypes, vinCodeIn) {
      let appId = weChatPayData.appId;
      let timestamp = weChatPayData.timeStamp;
      let nonceStr = weChatPayData.nonceStr;
      //let signature = weChatPayData.signature;
      let packages = weChatPayData.packages;
      let paySign = weChatPayData.paySign;
      let payFormType = payFormTypes;
      let vinCode = vinCodeIn;
      let orderNum = weChatPayData.orderTradeNo;
      wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: appId, // 必填,公众号的唯一标识
        timestamp: timestamp, // 必填,生成 签名的时间戳
        nonceStr: nonceStr, // 必填,生成签名的随机串
        paySign: paySign, // 必填,签名,见附录1
        jsApiList: ["chooseWXPay"] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
      });
      wx.ready(function() {
        wx.chooseWXPay({
          timestamp: timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
          nonceStr: nonceStr, // 支付签名随机串,不长于 32 位
          package: packages, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
          signType: "MD5", // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
          paySign: paySign, // 支付签名
          success: function(res) { // 支付成功后的操作
            if (payFormType === "Y") {
              window.location.href =
                "http://xxxxx.com/nwcc/historylist2";
            } else if (payFormType === "W") {
              // W Z
              window.location.href = 
                 "http://xxxx.com/nwcc/maintainreport?reportType=W&vinCode=" +
                vinCode +
                "&orderTradeNo=" +
                orderNum; 
            } else if (payFormType === "Z") {
              // W Z
              window.location.href = 
                "http://xxxx.com/nwcc/maintainreport?reportType=Z&vinCode=" +
                vinCode +
                "&orderTradeNo=" +
                orderNum; 
            }
          },
          fail: function(res) {
            alert("支付失败!");
          }
        });
      });
      wx.error(function(res) {
        // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
        alert("config信息验证失败");
      });
    }
    
    // 微信支付
    Vue.prototype.$wxPay = weChatPay;
    

    三. 调起支付

    • 通过后台获取到微信config签名然后调用上面的方法, 只要签名正确就可以调起支付界面了
    var params = {
      userId: localStorage.getItem("openid"),// 微信openid
       good: "xxxxx", // 商品名
       price: "600", // 价格, 单位分
       vinCode: this.vinCodeIn,
       orderType: "W"
     };
    let res = await axios.postTest("/order/matinTainAdd", params);
    if (res.data.errcode === 0) {
        // 下单成功
        this.$wxPay(res.data.data, "W", this.vinCodeIn); // 调起支付
        setTimeout(() => {
          this.isDisable = false;
        }, 5000);
      } else {
        this.$message.error(res.data.errmsg);
        setTimeout(() => {
          this.isDisable = false;
        }, 5000);
      }
    

    觉得有用的话就点个赞吧

    展开全文
  • java开发微信付款码支付

    千次阅读 热门讨论 2018-12-19 22:27:19
    @[clownss] java开发微信付款码支付 微信支付–付款码支付 写在前面的话,各位大佬,晚上好!今儿是小弟第一次发表博客,我是一名刚入行的程序员,写的不好或是不对的地方,希望各位见谅。还请各位大佬能够指导,...

    @[clownss] java开发微信付款码支付

    微信支付–付款码支付

    写在前面的话,各位大佬,晚上好!今儿是小弟第一次发表博客,我是一名刚入行的程序员,写的不好或是不对的地方,希望各位见谅。还请各位大佬能够指导,给予小弟一份帮助。谢谢大家!今天写的是我最近研究的微信付款码支付的一个小demo。
    官方地址:https://pay.weixin.qq.com/wiki/doc/api/index.html

    1.支付方式

    微信官方提供了以下几种支付方式:

    • 付款码支付:用户打开微信钱包-付款码的界面,商户扫码后提交完成支付

    • JSAPI支付:用户通过微信扫码、关注公众号等方式进入商家H5页面,并在微信内调用JSSDK完成支付

    • Native支付:用户打开“微信扫一扫”,扫描商户的二维码后完成支付

    • H5支付:用户在微信以外的手机浏览器请求微信支付的场景唤起微信支付

    • 小程序支付:用户在微信小程序中使用微信支付的场景

      我这里只是讨论的是 付款码支付

    2.准备参数

    微信付款码开发需要准备:appid,商户号,密钥

    • appid(公众账号ID )微信分配的公众账号ID(企业号corpid即为此appId)
    • mch_id (商户号 )微信支付分配的商户号
    • key(密钥)微信API密钥

    2.1付款码支付开发流程

    • 第一步需要注册微信公众号,在微信公众号里面微信回给我们分配的开发者ID(AppID) 以及开发者密码(AppSecret) ,这两个需要我们妥善保管。appid在微信开发的几种模式都需要用到。

    • 第二步就是需要注册商户号了,这里注册就比较严格了。商户平台会给我们分配商户号(mch_id )

    • 第三步设置API密钥,简单流程就是:安装操作证书 -> 设置API密钥

      操作指引:可参考http://kf.qq.com/faq/161222NneAJf161222U7fARv.html

    3.代码实现(简单开发)

    这里主要写我在开发过程中具体实现,一个简单的jsp+servlet开发,需要下载官方的demo。

    • 到maven仓库下载需要的jar包wxpay-sdk-0.0.3.jardom4j-1.6.1.jar放到我们的项目中
    • 编写IWXPayDomain接口,官方demo里面也有这个接口
    /**
     * 域名管理,实现主备域名自动切换
     */
    public interface IWXPayDomain {
        /**
         * 上报域名网络状况
         * @param domain 域名。 比如:api.mch.weixin.qq.com
         * @param elapsedTimeMillis 耗时
         * @param ex 网络请求中出现的异常。
         *           null表示没有异常
         *           ConnectTimeoutException,表示建立网络连接异常
         *           UnknownHostException, 表示dns解析异常
         */
         void report(final String domain, long elapsedTimeMillis, final Exception ex);
    
        /**
         * 获取域名
         * @param config 配置
         * @return 域名
         */
         DomainInfo getDomain(final WXPayConfig config);
    
         class DomainInfo{
             /**
              * 域名
              */
            public String domain;
             /**
              * 该域名是否为主域名。例如:api.mch.weixin.qq.com为主域名
              */
            public boolean primaryDomain;
            public DomainInfo(String domain, boolean primaryDomain) {
                this.domain = domain;
                this.primaryDomain = primaryDomain;
            }
    
            @Override
            public String toString() {
                return "DomainInfo{" +
                        "domain='" + domain + '\'' +
                        ", primaryDomain=" + primaryDomain +
                        '}';
            }
        }
    }
    
    • 编写MyConfig 类实现微信sdk里面的WXPayConfig 接口,这里面主要是准备我们自己的参数,就是上面准备的appid商户号密钥
    public class MyConfig implements WXPayConfig {
    
        /** 加载证书  这里证书需要到微信商户平台进行下载*/
        private byte[] certData;
    
        public MyConfig() throws Exception {
            //证书只是撤销订单时会使用,在这里的demo中没有用到
            /*String certPath = "自己商户平台下载的证书";
            File file = new File(certPath);
            InputStream certStream = new FileInputStream(file);
            this.certData = new byte[(int) file.length()];
            certStream.read(this.certData);
            certStream.close();*/
        }
    
        /**
         * 设置自己的appId ,商户号,密钥
         * @return
         */
        @Override
        public String getAppID() {
            return "自己的appId";
        }
    
        @Override
        public String getMchID() {
            return "自己的商户号";
        }
    
        @Override
        public String getKey() {
            return "自己的密钥";
        }
    
        @Override
        public InputStream getCertStream() {
            ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
            return certBis;
        }
    	
        @Override
        public int getHttpConnectTimeoutMs() {
            return 8000;
        }
    
        @Override
        public int getHttpReadTimeoutMs() {
            return 10000;
        }
    
    	/**
    	*这里的方法,实现必须如下
    	*/
        IWXPayDomain getWXPayDomain() {
            IWXPayDomain iwxPayDomain = new IWXPayDomain() {
                @Override
                public void report(String domain, long elapsedTimeMillis, Exception ex) {
    
                }
                @Override
                public DomainInfo getDomain(WXPayConfig config) {
                    return new IWXPayDomain.DomainInfo("api.mch.weixin.qq.com", true);
                }
            };
            return iwxPayDomain;
        }
    }
    
    • 编写我们的支付方法(接口)了
    public class MyWXPay {
    
       private static final String PAY_SUCCESS = "SUCCESS";
       private static final String PAY_USERPAYING = "USERPAYING";
    
       private MyWXPay(){}
    
       private static Log log = LogFactory.getLog(MyWXPay.class);
    
       /**
        * 扫码支付
        * @throws Exception
        */
       public static String scanCodeToPay(String auth_code) throws Exception {
           MyConfig config = new MyConfig();
           WXPay wxpay = new WXPay(config);
           String out_trade_no = DateUtil.getCurrentTime();
           Map<String, String> map = new HashMap<>(16);
           map.put("attach", "订单额外描述");
           map.put("auth_code", auth_code);
           map.put("body", "付款码支付测试");
           map.put("device_info", "1000");
           map.put("nonce_str", WXPayUtil.generateNonceStr());
           map.put("out_trade_no", out_trade_no);
           map.put("spbill_create_ip", "14.17.22.52");
           map.put("total_fee", "2");
           //生成签名
           String sign = WXPayUtil.generateSignature(map, config.getKey());
           map.put("sign", sign);
           String mapToXml = null;
           try {
           	//调用微信的扫码支付接口
               Map<String, String> resp = wxpay.microPay(map);
               mapToXml = WXPayUtil.mapToXml(resp);
           } catch (Exception e) {
               e.printStackTrace();
               log.error("微信支付失败"+ e);
           }
           //判断支付是否成功
           String return_code = null;
           String result_code = null;
           String err_code_des = null;
           String err_code = null;
           //获取Document对象(主要是获取支付接口的返回信息)
           Document doc = DocumentHelper.parseText(mapToXml);
           //获取对象的根节点<xml>
           Element rootElement = doc.getRootElement();
           //获取对象的子节点
           List<Element> elements = rootElement.elements();
           for (Element element : elements) {
               if(element.getName().equals("return_code")){
                   return_code = element.getTextTrim();
               } else if(element.getName().equals("result_code")){
                   result_code = element.getTextTrim();
               } else if(element.getName().equals("err_code_des")){
                   err_code_des = element.getTextTrim();
               } else if(element.getName().equals("err_code")){
                   err_code = element.getTextTrim();
               }
           }
           if(PAY_SUCCESS.equals(return_code) && PAY_SUCCESS.equals(result_code)){
               log.info("微信免密支付成功!");
               return PAY_SUCCESS;
           } else if (PAY_USERPAYING.equals(err_code)){
               for(int i = 0; i < 4; i++){
                   Thread.sleep(3000);
                   Map<String, String> data = new HashMap<>(16);
                   data.put("out_trade_no", out_trade_no);
                   //调用微信的查询接口
                   Map<String, String> orderQuery = wxpay.orderQuery(data);
                   String orderResp = WXPayUtil.mapToXml(orderQuery);
                   String trade_state = null;
                   //获取Document对象
                   Document orderDoc = DocumentHelper.parseText(orderResp);
                   //获取对象的根节点<xml>
                   Element rootElement1 = orderDoc.getRootElement();
                   //获取对象的子节点
                   List<Element> elements1 = rootElement1.elements();
                   for (Element element : elements1) {
                       if(element.getName().equals("trade_state")){
                           trade_state = element.getTextTrim();
                       }
                   }
                   if(PAY_SUCCESS.equals(trade_state)){
                       log.info("微信加密支付成功!");
                       return PAY_SUCCESS;
                   }
                   log.info("正在支付" + orderResp);
               }
           }
           log.error("微信支付失败!");
           return err_code_des;
       }
    }
    

    我这里模拟了付款时需要输入密码,进行了三次轮询。里面的各个参数的含义,我这里就不详细写了,请参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1

    • 最后一步就是进行测试
    @Test
        public void test4(){
            try {
                String result = MyWXPay.scanCodeToPay("请填写测试微信二维码信息");
                System.out.println(result);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    • 工具类代码
    public class DateUtil {
        
         private DateUtil(){
            throw new RuntimeException("不能被实列化!");
        }
    
        /**
         * 获取当前时间(14位)
         * @return
         */
        public static String getCurrentTime(){
            Date now = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
            return simpleDateFormat.format(now);
        }
        /**
         * 获取当前时间戳,单位秒(10位)
         * @return
         */
        public static long getCurrentTimestamp() {
            return System.currentTimeMillis()/1000;
        }
    
        /**
         * 获取当前时间戳,单位毫秒(13位)
         * @return
         */
        public static long getCurrentTimestampMs() {
            return System.currentTimeMillis();
        }
    
    }
    

    今天的分享就是这些了,希望能给你有所帮助,写的不好还请大家见谅。在下一篇博客里我想给大家介绍第二种支付方式JSAPI支付 ,希望得到大家的支持。谢谢大家!祝大家生活愉快,合家欢乐。

    展开全文
  • Php 微信付款

    2016-01-27 14:47:00
    代码示例:(thinkphp) <?...namespace Admin\Controller; /****************************************** * 微信付款功能 * @Author wzb 312967328@qq.com * @time 2015-11-6 ******************...
  • 企业微信付款到零钱

    2019-09-14 16:05:02
    企业微信付款到零钱,提示证书不存在,可能原因如下: 1. apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定 转载于:http...
  • 微信付款码: 用户付款码条形码规则:18位纯数字,以10、11、12、13、14、15开头 文档链接:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=5_1 支付宝付款码: 由于业务发展需要,支付宝在2017年9月...
  • 微信付款介绍

    2016-07-29 15:56:14
    微信服务号的企业付款介绍,便于第三方开发者,便于理解操作,使用更好的配置
  • 支付宝,微信付款码正则表达式 微信的条形码正则: ^1[0-5]\d{16}$ 支付宝的条形码正则: ^(?:2[5-9]|30)\d{14,18}$
  • 微信付款api示例

    2019-02-28 09:59:06
    微信支付示例,调用api源码,该资源用。net开发,代码详细,请大家仔细看下就能用了。
  • 目前刷脸支付市场启动之初,微信自然也提供了刷脸支付的功能,今天要整理的笔记 服务商微信付款码支付。 第一步 完成微信商户号的注册流程 【商户号注册请打开微信支付...
  • 支付宝、微信付款二维码中间图片
  • 微信付款码扫码枪支付

    千次阅读 2019-04-05 12:20:00
    微信付款码扫码枪支付 https://pay.weixin.qq.com/wiki/doc/api/index.html https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=5_1 场景介绍 步骤1:用户选择付款码支付,付款码打开路径:微信-&...
  • 微信有一个API是企业付款,可以从企业账户付款到个人微信的零钱,另外还支持付款到银行卡,其实这个功能可以用于普通用户在商户端提现功能的开发。本此发布的课程讲解微信企业付款到用户零钱账户,间接实现用户提现...
  • 微信支付 付款转账到个人银行卡,关键是Base64的解密方式不同,其他没什么不一样,微信这个坑爹的货,又不提供demo,只有自己想办法试
  • 个人对于企业微信付款到零钱的一些理解与说明,含代码 前段时间因公司业务需求,需要开发一个企业微信直接付款到用户微信账户的功能,然后就去微信官方文档看了一下,点击进入微信企业支付官方文档 没什么特别的...
  • PHP实现微信商户支付企业付款到零钱功能来源:中文源码网浏览: 次日期:2019年11月5日【下载文档:PHP实现微信商户支付企业付款到零钱功能.txt】(友情提示:右键点上行txt文档名->目标另存为)PHP实现微信商户支付...
  • 近日,有谣传称,某地一位邓女士微信付款码截图后,被不法分子盗刷事件,微信官方进行了相关澄清回复,微信早在2016年就已经通过技术手段,切断了将微信付款码截图发给其他人后被盗刷的可能性。微信官方表示,从2016...
  • 4.用户支付后,微信异步通知商户系统支付结果,商户系统告知微信接收情况(不告知接收情况,微信会连续发送支付结果) 4.商户系统修改订单状态,并调用远程接口通知服务器后台,修改订单状态 支付流程图 在这里插入...
  • 微信转账、微信扫码支付、微信红包发放的金钱交易,记录怎么查询 在线等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,916
精华内容 1,166
关键字:

微信付款