支付宝支付功能的实现(沙箱测试)

支付宝沙箱支付测试 进行支付宝扫码支付功能开发。 阅读详情

1.登陆支付宝开放平台

进入开发者中心
点击 研发服务
扫码 下载沙箱版支付宝

2.设置公钥私钥

在这里插入图片描述
然后下载密钥生成工具
在这里插入图片描述
生成完以后把(应用公钥)粘贴到沙箱环境中
在这里插入图片描述
下载沙箱版支付宝,账号密码在这
在这里插入图片描述
沙箱环境配置完毕

3.配置服务器

要添加一个支付宝的SDK的依赖

       <!--支付宝的SDK-->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.3.0.ALL</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk15on</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

4.创建一个pay.properties配置文件

注意要在spring配置文件中加载
改三个,用户私钥,阿里公钥,AAPID

#支付宝网关地址
serverUrl=https://openapi.alipaydev.com/gateway.do
#应用编号  自己的AAPID
appId=2016091300500103
#用户私钥  在公钥私钥生成工具里面粘贴
privateKey=用户私钥
#阿里公钥  在开放平台沙箱环境里面查看 然后 粘贴
alipayPulicKey=阿里公钥
#传递数据格式json
format=json
#编码
charset=utf-8
#加密方式
signType=RSA2

5.在spring配置文件中配置支付宝客户端对象的bean(记得扫描properties配置文件)

  <!--配置支付宝客户端对象-->
    <bean id="payClient" class="com.alipay.api.DefaultAlipayClient">
        <constructor-arg name="serverUrl" value="${serverUrl}"/>
        <constructor-arg name="appId" value="${appId}"/>
        <constructor-arg name="privateKey" value="${privateKey}"/>
        <constructor-arg name="format" value="${format}"/>
        <constructor-arg name="charset" value="${charset}"/>
        <constructor-arg name="alipayPublicKey" value="${alipayPulicKey}"/>
        <constructor-arg name="signType" value="${signType}"/>
    </bean>

6.编写一个预下单的代码

具体思路可查看这个
在这里插入图片描述
1.写一个接口pay_interface
参数1:订单编号 参数2:支付金额

package com.offcn.pay.service;
import java.util.Map;
/**
 * 支付宝支付接口
 * @author Administrator
 *
 */
public interface AliPayService {

    /**
     * 生成支付宝支付二维码
     * @param out_trade_no 订单号
     * @param total_fee 金额(分)
     * @return
     */
    public Map createNative(String out_trade_no,String total_fee);
}

2.写实现类pay_service
传入参数
参数1:订单编号 参数2:支付金额

package com.offcn.pay.service.impl;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.request.AlipayTradePrecreateRequest;
import com.alipay.api.response.AlipayTradePrecreateResponse;
import com.offcn.pay.service.AliPayService;
import org.springframework.beans.factory.annotation.Autowired;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

public class AliPayServiceImpl implements AliPayService {
    @Autowired
    AlipayClient alipayClient;
    @Override
    public Map createNative(String out_trade_no, String total_fee) {
        Map<String,String> map=new HashMap<String, String>();
        //创建预下单请求对象
        AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
        //转换下单金额按照元,因为传进来的金额单位是 分
        long total = Long.parseLong(total_fee);
        BigDecimal bigTotal = BigDecimal.valueOf(total);
        BigDecimal cs = BigDecimal.valueOf(100d);

        BigDecimal bigYuan = bigTotal.divide(cs);
        System.out.println("预下单金额:"+bigYuan.doubleValue());
        request.setBizContent("{" +
                "    \"out_trade_no\":\""+out_trade_no+"\"," +   //商家订单号
                "    \"total_amount\":\""+bigYuan.doubleValue()+"\"," +  //与下单金额 单位 :元
                "    \"subject\":\"优乐选商城商品\"," +  //商家标题
                "    \"store_id\":\"xa_001\"," + //店铺编号
                "    \"timeout_express\":\"90m\"}");//设置业务参数  预下单失效时间 90m
        //3.发出预下单业务请求
        try {
            AlipayTradePrecreateResponse response = alipayClient.execute(request);
            //4.从相应对象读取相应结果
            String code = response.getCode();
            System.out.println("响应码:"+code);
            //全部的响应结果
            String body = response.getBody();
            System.out.println("返回结果:"+body);

            if(code!=null&&code.equals("10000")){
                //获取响应订单二维码  并且 封装进去
                map.put("qrcode", response.getQrCode());
                //订单编号
                map.put("out_trade_no", response.getOutTradeNo());
                //订单金额
                map.put("total_fee",total_fee);
                System.out.println("qrcode:"+response.getQrCode());
                System.out.println("out_trade_no:"+response.getOutTradeNo());
                System.out.println("total_fee:"+total_fee);
            }else{
                System.out.println("预下单接口调用失败:"+body);
            }
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }


        return map;

    }
}

7.测试访问接口

使用IdWorker工具类生成订单编号,这里测试金额写死 写成1

    @RequestMapping("/createNative")
    public Map createNative(){
        //生成订单编号
        long out_trade_no = idWorker.nextId();
Map map=payService.createNative(out_trade_no ,1+"");
        }
        return map;
    }

访问接口进行测试
在这里插入图片描述
这个url地址就是生成二维码的地址,扫描二维码就可以支付了
关于二维码生成的方法,看我的另一篇博文
链接: 查看地址.

如何判断支付是否成功

思路:在生成二维码后,就立马访问判断支付是否成功的接口,并用一个死循环,不停的查询状态,可以设置可最大循环次数,超过次数就说明支付超时,是通过订单编号来查询的

8.实现类方法
    public Map queryPayStatus(String out_trade_no){
        System.out.println("需要查询支付状态的订单编号:"+out_trade_no);
        Map map=new HashMap();
        //1、创建交易查询请求对象
        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
        //2、设置查询参数
        request.setBizContent("{" +
                "    \"out_trade_no\":\""+out_trade_no+"\"," +//设置电商平台生成订单编号
                "    \"trade_no\":\"\"}");//支付宝生成交易流水号
        //发出查询
        try {
            AlipayTradeQueryResponse response = payClient.execute(request);
            //获取响应状态码
            String code = response.getCode();
            System.out.println("交易查询返回结果:"+response.getBody());
            if(code!=null&&code.equals("10000")){
                //判断交易状态 交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
                String tradeStatus = response.getTradeStatus();
                //封装交易状态
                map.put("tradestatus",response.getTradeStatus());
                //支付宝生成交易流水号
                map.put("trade_no",response.getTradeNo());
                //订单编号
                map.put("out_trade_no",out_trade_no);
            }else {
                System.out.println("交易查询失败:"+code);
            }
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        return map;
    }

map里就封装了支付的状态,一共就四个值 //交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、
TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
TRADE_SUCCESS(交易支付成功)、
TRADE_FINISHED(交易结束,不可退款)

接口

这里采用while(true)循环,不断地去查询支付状态,可以设置个最大循环次数,支付结果用Map封装

    //查询交易状态
    @RequestMapping("/queryPayStatus")
    public Result queryPayStatus(String out_trade_no){
        Result result=null;
        int  x=0;
        while (true) {
        //调用实现类方法
            Map map = payService.queryPayStatus(out_trade_no);
            if (map == null) {
                //查询异常,不在查询
                result = new Result(false, "请求交易状态查询服务异常");
                //跳出循环
                break;
            }

            //判断返回状态
            //交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、
            // TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
            // TRADE_SUCCESS(交易支付成功)、
            // TRADE_FINISHED(交易结束,不可退款)
            //判断交易状态为 TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)
            if (map.get("tradestatus") != null && map.get("tradestatus").equals("TRADE_CLOSED")) {
                result = new Result(false, "未付款交易超时关闭,或支付完成后全额退款");
                break;
            }

            if (map.get("tradestatus") != null && map.get("tradestatus").equals("TRADE_SUCCESS")) {
                result = new Result(true, "交易支付成功");
               //调用订单服务 修改订单状态
                orderService.uodateOrderStatus(out_trade_no,map.get("trade_no")+"");
                break;
            }

            if (map.get("tradestatus") != null && map.get("tradestatus").equals("TRADE_FINISHED")) {
                result = new Result(false, "交易结束,不可退款");
                break;
            }
            if (map.get("tradestatus") != null && map.get("tradestatus").equals("TRADE_CLOSED")) {
                result = new Result(false, "未付款交易超时关闭,或支付完成后全额退款");
                break;
            }

            x++;
            if(x>=99){
                result=new Result(false,"二维码超时");
                break;
            }
            //为了防止一直查询,网关屏蔽掉,可以让查询线程等待3秒
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
理解思路图

在这里插入图片描述

阿里沙箱支付sandbox完整流程示例 【代码】阿里沙箱支付sandbox完整流程示例。 阅读详情

相关推荐

教你个人实现支付宝pc网页支付详细教程

说明一下 本次使用java语言,在沙箱环境下测试,使用的是内网穿透工具EchoSite 会需要支付宝支付的demo,这是支付宝pc网站支付demo的下载地址:https://docs.open.alipay.com/270/106291/ 下面这个链接是包含支付宝demo,RSA签名工具,以及将支付宝提供demo里的jsp里的内容封装成方法,来实现网站扫码支付的源码,百度云上分享的,可以免费下载 ...

一枚逗比 2万+

【网课平台】Day12.对接支付宝沙箱环境测试

ZXing是一个开源的类库,是用Java编写的多格式的1D / 2D条码图像处理库,使用ZXing可以生成、识别QR Code(二维码)。沙箱环境是支付宝为开发者提供的与生产环境完全隔离的一个联调测试环境,沙箱环境中调用接口不会对生产环境的数据产生影响。一个网站要支持在线支付功能通常接入第三方支付平台,比如:微信支付、支付宝、其它的聚合支付(一码扫所有)平台。除了在pc网站扫码支付还可以实现公众号页面内支付,可以实现在手机端H5页面唤起微信客户端完成支付。创建订单服务及数据库。

llg___的博客 1273

SpringBoot 整合 支付宝沙箱 实现支付

‌支付宝沙箱是一个模拟环境,专门为开发者提供,用于在不影响真实交易的情况下进行支付宝相关功能的测试和调试。‌ 支付宝沙箱(AlipaySandbox)允许开发者在隔离的测试环境中模拟真实的支付流程和接口,从而验证其支付功能是否正常工作。这种环境不会对真实数据产生影响,因为它完全隔离于真实支付宝环境。支付宝沙箱为开发者提供了一套模拟的支付流程和接口,包括扫码支付、APP支付、H5支付等场景,以及相关的调试工具和接口文档,帮助开发者更方便地进行测试和开发。

此人很懒,什么都没有写~~ 3657

SpringBoot+Alipay支付宝支付对接教程(沙箱环境)

Alipay一、学习文档二、环境准备1、调试2、依赖三、开发 一、学习文档 1、API https://opendocs.alipay.com/apis 2、沙箱环境 https://opendocs.alipay.com/apis 二、环境准备 1、调试 (1)获取appid 点击上述沙箱环境网址,登陆进入,以下为appid (2)设置RSA2密钥 1、依然是沙箱环境,如下,点击 设置 2、选择 公钥 ,此处的公钥支付宝提供了专门的生产工具,很方便 生成密钥有两种方式,我选择的是生成器生成。以下

qq_41563912的博客 7027

Spring集成支付宝沙箱支付

保姆级教程: Spring集成沙箱支付从零到一步骤教程

LoveTalk的博客 3468

支付宝沙箱--模拟支付(springboot)

System.out.println("买家付款金额:"+params.get("buyer_pay_amount"));System.out.println("买家在支付宝的唯一id:"+params.get("buyer_id"));System.out.println("商家订单号:"+params.get("out_trade_no"));System.out.println("支付宝交易凭证:"+params.get("trade_no"));// 属性名与Java命名规范一致。

weixin_63775234的博客 4469

使用阿里支付宝沙箱支付(谷粒)

支付宝沙箱

qq_56533553的博客 763

Web应用接入支付宝支付功能沙箱环境测试支付宝支付功能

首先需要说明的是,接入支付宝可以实现第三方授权,支付等功能。但是有些功能是需要进行签约的。而且创建一个应用之后需要进行审核,过程比较长,不利于开发进行测试。幸运的是,支付宝为我们提供了一个沙箱环境可以用来测试,而且里面把所有的权限都开启了,不需要进行签约操作。同时这个环境的逻辑与真实情况下一样,所以可以先用沙箱环境下的APPID把代码写好,然后等审核通过了之后,切换到真实的APPID。 ​ 这里主要讲如何在沙箱环境下实现微信支付的接入,真实环境和这个是差不多的。首先登陆支付宝开放平台:https://ope

qq_42655885的博客 1945

支付宝支付-当面付DEMO-沙箱测试

支付宝支付-当面付DEMO-沙箱测试 前段时间做的网上商城项目由于没有企业账户无法进行微信支付,得知支付宝有沙箱测试环境,特意来运行一下官方的DEMO 去蚂蚁金服注册,认证,下载当面付DEMO这些就不多说了 第一步:配置沙箱应用环境 点击“开放平台-开发者中心-沙箱环境”。进入沙箱环境页面,系统已经自动为你创建一个应用,在基础信息中可以看到应用信息。 在此处下载生成RSA密钥工具...

luguo1331的博客 5051

达梦DM8整合Seata AT模式实战:手把手教你搞定分布式事务(含源码修改避坑)

本文详细介绍了达梦DM8数据库与Seata AT模式的深度整合实战,包括环境准备、架构设计、源码适配及分布式事务落地。通过独创性源码改造,解决了Seata官方对达梦数据库AT模式支持的限制,为国产数据库在微服务架构中的应用提供了可靠的事务保障。

weixin_30764771的博客 331

【2025CVPR】基于脉冲神经网络的能效目标检测模型:Multi-scale Spiking Detector(MSD)深度解析

本文提出了一种创新的多尺度脉冲神经网络目标检测器(MSD),通过生物启发的ONNB模块和MSDF框架实现了高效准确的目标检测。该模型采用端到端直接训练策略,在COCO数据集上达到62.0%mAP的精度,同时仅需7.8M参数和6.43mJ能耗,较传统方法提升2.8%精度并降低82.9%能耗。实验验证了其在小目标检测和事件数据处理的优越性,为边缘计算应用提供了新范式。

hasakie的博客 1106

实现支付宝沙箱环境的支付接入

该教程为支付宝沙箱测试环境,其中交易操作都是虚拟货币操作 一、申请成为开发者 登录蚂蚁金服:https://open.alipay.com/platform/home.htm 二、添加沙箱应用 三、设置密钥 生成后的密钥: 生成后成txt文档保存: 好了,到这儿沙箱环境基本上配置好了 四、下载demo包 下面我是测试的PHP电脑网站支付的demo,还有很多功能:APP支付、...

光头强的博客 4387

实战演练:用wvp-GB28181-pro + ZLMediaKit搭建一个可用的国标视频监控测试环境(附设备模拟器对接)

本文详细介绍了如何使用wvp-GB28181-pro和ZLMediaKit在Ubuntu系统上搭建GB28181视频监控测试环境。从环境准备、组件解析到核心服务部署与设备模拟器对接,提供完整的实战指南,帮助开发者快速构建可验证的监控系统。

weixin_42692935的博客 579

教你如何用支付宝测试扫一扫付钱功能

七月的时候做了一个银联测试,感觉需要这部分知识的人挺多的。最近研究了下支付宝支付,发现特别简单。给大家分享一下。 创建测试应用https://www.ant-open.com/platform/home.htm,这是蚂蚁金服开放平台链接,点击管理中心,左下角有沙箱环境。如图所示 注意我红线的四个部分,这些值会配置到项目中。 3.下载Demo (java) https://doc.open.a

csdn问鼎 1万+

NSFC结题报告下载脚本失效?3步教你手动修复下载按钮问题(2024最新版)

针对NSFC官网域名变更导致结题报告下载脚本失效的问题,本文提供了详细的手动修复指南。通过三步操作,教你如何修改用户脚本的域名匹配规则,恢复下载按钮功能,确保NSFC结题报告下载器能继续高效工作。

vscode6remote的博客 747

【Elasticsearch专栏 16】深入探索:Elasticsearch的Master选举机制及其影响因素分析

Elasticsearch的Master选举机制是其分布式架构的基石,确保集群高可用性和数据一致性。通过多数派协议,节点间交换信息并投票选举Master,以维护集群状态和处理请求。该机制自动处理故障转移,保障服务连续性。

weixin_40736233的博客 1773

Java web 支付宝电脑支付(沙箱)

参考链接:https://blog.youkuaiyun.com/Amo_lt/article/details/77435545一、什么是沙箱(网络编程虚拟执行环境)    Sandboxie(又叫沙箱、沙盘)即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。其为一个独立的虚拟环境...

qq_35398517的博客 5155

【AI智能体】Hermes Agent 从部署到项目实战操作详解

Hermes Agent 桌面版从安装到实战操作详解

congge 5129

支付宝沙箱模拟支付

支付宝沙箱(Alipay Sandbox)是支付宝提供的一个测试环境,用于开发者在模拟支付宝支付流程和接口调用时进行测试和调试。在正式上线之前,开发者可以使用支付宝沙箱环境进行各种支付场景的模拟测试,包括创建订单、发起支付、退款等操作。支付宝沙箱提供了一套完整的测试工具和接口,开发者可以通过沙箱环境模拟真实的支付宝交易过程,以验证自己的代码和业务逻辑是否正确。

bianmy1的博客 1万+

Palantir如何利用Ontology构建企业级数据地图

Palantir通过"本体论"(Ontology)技术构建动态数据地图,将多源异构数据转化为可操作的业务知识网络。该技术突破传统ETL模式,建立覆盖全组织的语义层,将原始数据映射为"客户""订单"等业务对象及其关联关系,形成可推理的语义网络。核心Foundry平台提供本体管理工具(OMA)和开发套件(OSDK),支持从数据连接到应用开发的全流程。虽然采用专有实现而非标准本体语言,但该架构成功解决了数据孤岛问题,赋能复杂决策分析

Learning 1783

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

XiaoqiangClub的博客 5157

Spring Boot 整合 支付宝沙箱 实现支付

目录一、什么是支付宝沙箱二、支付环境申请A、配置沙箱应用环境1、进入沙箱(1)进入支付宝开放平台(2)进行登录没有支付宝账户的话需要先注册手机支付宝扫码登录手机号密码登录(3)进入控制台(4)进入沙箱(5)进入之后可以查看APPID和支付宝网关地址和密钥(6)查询账号信息2、秘钥的申请可以直接使用默认的秘钥可以使用自定义秘钥(需要下载秘钥工具生成)(1)下载秘钥工具(2)安装秘钥工具a.双击打开选择用户b.选择安装位置c.点击安装完成安装成功运行(3)生成秘钥。

2403_88533107的博客 2348

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

php支付宝扫码登录接口,支付宝支付接口 - musam的个人空间 - OSCHINA - 中文开源技术交流社区...

接入阿里支付宝其实不是很难,阿里提供了很全面的SDK供我们使用,我们只需调用API接口就可以完成支付功能,但是具体的业务还是需要我们自己编写,根据提供的文档记录一下简单的使用方式。1、登录蚂蚁金服开放平台,进入沙箱(沙箱相当于测试环境,我们可以使用平台提供的测试账号进行支付操作) 2、配置密钥,沙箱网关等。(密钥生成使用阿里提供的工具即可,工具下载在网页介绍里) 3、查看平台提供的测试账号 4、下...

weixin_29569767的博客 969

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

一小时学会使用Springboot整合沙箱环境支付宝支付(附源码)

支付宝支付沙箱测试demo(附源码) 声明: 转载请附原文链接 0.前言 文章需求: 对于学生来说,目前网上确实没有比较统一而且质量好的支付教程。因为支付对个人开发者尤其是学生来说不太友好。因此,自己折腾两天,算是整理了一篇关于支付宝沙箱支付的文章。 那么为什么不用微信沙箱支付呢? 微信支付我在另一篇文章中写过,用的是别人的公众号和开放平台账号,而微信的沙箱测试我自己也搞了好几天了也没弄好,确实没有支付宝沙箱测试容易。因为支付宝提供了一套pc客户端和手机端的测试软件(比如沙箱版支付宝)! 微信和

兴趣使然的草帽路飞 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

springboot实现支付宝支付功能

一,实现支付宝支付功能步骤 1,创建一个springboot项目 2,注册入驻支付宝成为开发人员 3,进入沙箱应用,获取配置到项目中的配置信息**(重要!!!)** 4,下载支付宝开放平台开发助手,生成应用公钥和应用私钥**(重要!!!私钥要配置到项目中)** 5,springboot中配置支付宝支付信息,编写代码。 6,测试支付功能。 创建springboot项目省略 二,入驻支付宝成为开发人员 搜索支付宝,进入支付宝首页—》我是开发者—》注册登录(第一次登录时要求你必须入驻,直接入驻就行了) 地址给你准

斧头湖懒客 1万+

springboot功能模块之支付宝沙箱支付

支付宝沙箱支付(Alipay Sandbox Payment)是支付宝提供的一个模拟支付环境,用于开发和测试支付宝支付功能的开发者工具。在真实的支付宝环境中进行支付开发和测试可能涉及真实资金和真实用户账户,而沙箱环境则提供了一个安全、隔离的环境,使开发者能够模拟支付过程,测试支付功能,而不会使用真实资金。使用支付宝沙箱支付环境,开发者可以模拟各种支付场景,包括交易创建、支付请求、支付回调等,以验证支付功能的正确性和稳定性。沙箱环境中的所有交易和数据都是虚拟的,不会产生真实的交易或资金流动。

qq_62377885的博客 3023
上一篇: Jmeter压力测试工具的简单使用
下一篇: 二维码生成代码
Sonk.
博客等级 码龄8年 84粉丝 83原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sonk.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值