十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有三种方法可以使终止线程。
祁连网站建设公司创新互联建站,祁连网站设计制作,有大型网站制作公司丰富经验。已为祁连上千余家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的祁连做网站的公司定做!
1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。
2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
3. 使用interrupt方法中断线程。
1. 使用退出标志终止线程
当run方法执行完后,线程就会退出。但有时run方法是永远不会结束的。如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。如果想让循环永远运行下去,可以使用while(true){……}来处理。但要想使while循环在某一特定条件下退出,最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出。下面给出了一个利用退出标志终止线程的例子。
热门频道
首页
博客
研修院
VIP
APP
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
打开APP
南独酌酒nvn
关注
【Java 实现微信支付、Native 支付流程】,从编写代码到支付成功,一步到位! 原创
2020-10-17 14:30:03
8点赞
南独酌酒nvn
码龄4年
关注
文章目录
1. 项目环境介绍
2. 微信支付文档
2.1 业务流程说明
3. 准备信息
3.1 微信公众账号如何获取?
3.2 商户号如何获取?
3.3 API密钥如何获取?
3.4 准备工具类
4. 进入开发阶段
4.1 后端编写`生成微信支付二维码`的接口
4.2 前端实现
4.3 后端编写 `查询订单支付状态` 接口
4.4 前端调用 `查询订单支付状态` 接口
总结
1. 项目环境介绍
jdk 1.8
mysql 5.7
maven 3.6
在这里插入图片描述
项目前后端分离:后端 SpringBoot 项目、前端 Vue 项目
2. 微信支付文档
官方文档:
在这里插入图片描述
Native 场景介绍:用户扫描商户展示在各种场景的二维码进行支付。
这里我们支付流程选择方式二:
官方流程图:
在这里插入图片描述
2.1 业务流程说明
用我自己完成一次的过程来说。
在前端页面,用户肯定要点击某个按钮或者东西来触发事件,调用我们自己编写的接口,然后返回给前端一个二维码。
我们通过调用微信支付 【统一下单API】接口得到一个 code_url。
然后在前端通过某项技术跟据返回的 code_url 生成二维码。
用户打开微信 “扫一扫”,然后扫描这个二维码。
进入支付页面,支付指定金额后完成支付交易。
然后我们在调用微信支付【查询订单 API】查询用户支付状态
通过此支付状态可以判断用户支付成功还是支付失败。
支付成功就执行我们自己的业务逻辑,一般像修改定单状态改成已支付。
在这里插入图片描述
3. 准备信息
pom 文件引入微信支付 SDK 依赖
由于我们后面要调用微信支付的 AP
import com.capinfo.crypt.*;
public class RsaTest
{
public RsaTest(){
}
public static void main(String[] args){
//首信公钥文件
String publicKey = "d:/Public1024.key";
//签名信息
String SignString = "3e5671bc4f91c3d055b18c1e5e22dd9db157380c7ee8facf0b1117082fbf398d7113c2df7e3219fc28dd88dd26cb096cabe607f3e397dfc2dcdb3349351a5f025ea0761da6e39e2d2fd311294a6076e777fe2ab8911f22113c435b89d63ae4f2aff2f333f7ebd40cc89601d58fb37b16596b5c94eb8b64cd52e12b9679248e6a";
//原信息
String strSource = "abcde12345";
try{
//公钥验证
RSA_MD5 rsaMD5 = new RSA_MD5();
int k = rsaMD5.PublicVerifyMD5(publicKey,SignString,strSource);
if(k==0)
System.out.println("验证成功.");
else
System.out.println("验证失败.");
}catch(Exception e){
System.out.println("验证异常.\n"+e);
}
}
}