关于java调用第三方接口的求解 20C

比如java调用第三方支付宝的,我从网上看到的时候,客户端请求支付宝
然后支付宝封装参数给银行,银行付款然后通过支付宝,支付宝再通知客户。
但是我看到这个程序里面有个地方说到了异步,还有回调,对于这2个东西不太理解,
有没有做过的朋友给解释下。
如果不是异步的话 我能理解,客户-支付-银行,然后客户只要等待银行返回的数据就可以了,
但是这里出现了一个异步。。。。

4个回答

必然是异步,也就是你发请求给支付宝。这个就结束了。
你的程序该干嘛继续干嘛。
当支付宝收到钱,它调用你的服务器(你事先准备好一个地址,这个地址叫做回调)。
支付宝会立刻通知你,如果没有成功,会间隔一小段时间重复通知你。
如果不是异步,就惨了,一旦你或者支付宝卡住了,或者处理时间长,或者网络有断线,那么要么所有的业务全部卡住(同步要求之前的调用拿到返回值才能继续执行),要么不能保持可靠性(超时多少,就放弃,继续执行,那么可能出现明明付钱了,只是网络延迟问题,平台楞说没收到钱)。
这两者都是没法接受的。
所以只能异步了。说起来几个名词,其实调用起来没有什么难度。你写写就知道了。

caozhy
贵阳老马马善福专门编写代码的老马就是我! 回复StackTc: 支付宝的有文档,另外有很多源代码,你只要把你的key换上去就好。视频我没找过哦。
大约一年之前 回复
StackTc
StackTc 回复caozhy: 对对 他们给了 我一个 java服务器 我要本地启动服务,然后在里面调用 支付宝接口,有类似的教程视频吗
大约一年之前 回复
caozhy
贵阳老马马善福专门编写代码的老马就是我! 回复StackTc: 你必须要有一个服务器端,你的服务器端异步调用支付宝。支付宝回调你的服务器端,你的服务器端再发通知给app
大约一年之前 回复
StackTc
StackTc 像我们平时的话,付完钱 就是 等待付钱成功,如果是异步的话,付完钱 应该是哪里呢?app页面。因为我其实要做的是一个类似实名认证的接口,后台的确是异步的 但是我点击提交信息以后 应该要直接显示是或否成功认证的吧
大约一年之前 回复

应该说支付是否成功,都是支付宝返给你的. 支付宝分前台和后台通知你交易是否成功,

前台就是客户支付的时候 等待支付宝的返回是否成功,

后台就是:你在请求支付的时候 会把这个后台地址传给支付宝,他会请求你这个地址,如果支付宝告诉你交易成功,你就处理自己的业务逻辑,比如更新订单状态
你输出一个success,支付宝就知道成功了,如果没有输出success, 支付宝会3秒 5秒 1分钟 20分等等 会一直请求你的服务器 直到success 可能24小时后就不再请求了

支付宝有封装好的方法,直接按着文档使用 也可以

支付宝虽然两条线通知你交易是否成功,但是你在处理自己业务逻辑的时候 要在支付宝后台通知你成功的时候处理, 这属于支付宝请求你的服务器, 无感知的, 你说的异步回调 应该说的是这里

调用第三方接口,不需要你做什么。只需要将数据按照支付宝留给你的数据格式进行封装即可,支付宝处理完这些数据后应该会返回两个状态。一个是是否成功。一个是结果数据。你可以设置一个异步方式去动态监听这个结果。结果返回后立马进行局部刷新。从而显示支付结果

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于java调用第三方接口的问题
谁做过类似于短信平台的项目,我现在做的项目中有一个模块设计到短信互动,我们已经向移动开通了第三方接口,我现在的问题是如何把我获取的参数用post方法提交到移动给我们的url上,大家做过类似项目的给我发点源码上来,我参考下,谢谢,越详细越好
java如何调用第三方接口
这里有第三方接口,RFIDAPI.dll、RFIDAPI.lib、RFIDAPIEXPORT.h
Java调用第三方接口示范
分享一个人工智能教程,零基础入门!http://www.captainbed.net/inner 在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口。 使用流程 【1】准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的restTemplate来调用,上面有调用接口的方法【分为Get和Post方式的有参和无参调用】...
Java 怎么调用第三方接口
怎么在Java web 项目中,调用第三方接口?rn说的具体点:就是在项目中,想调用支付宝支付功能,不知道该怎么去调用支付宝支付接口??rn哪位大神能解答一下,谢谢!!!rn
java 调用第三方接口
1.在配置文件中准备好url和 所需的参数 String param=xxxx; String url =xxx; 2.创建http请求 try { HttpClient httpClient = httpClientBuilder.create().builder(); HttpGet httpGet = new HttpGet(url); HttpResponse respons...
java调用第三方接口出现UnknownHostException
一:问题描述rn 我用JAVA写的程序,使用httpclient调用第三方接口,每10分钟调用一次,一共调用五家公司提供的接口,调用其中一家公司的接口时,出现UnknownHostException这个异常,我想请问,这是第三方服务器和我服务之前的网络问题,还是对方系统问题?rn 另外我还发现一个奇怪现像,当出现这个异常时,我记录了日志,我日志里记录的URL是:http://www.test.com:8080/action,但系统的异常信息的URL是http://www.test.comrn[code=java]tryrn HttpClient httpClient = new HttpClient(); rn PostMethod postMethod = new PostMethod(url);rn rncatch (Exception e) rn [color=#FF0000]e.printStackTrace();//从这里看URL却是http://www.test.com,没有端口号和应用名称rn //在此记录日志 得到结果是:http://www.test.com:8080/action[/color]rn rn[/code] rn[img=https://img-bbs.csdn.net/upload/201403/11/1394508872_770870.jpg][/img]rn请问这是什么原因?
Java之Json数据格式调用第三方接口
点击下载JSON格式操作类库 使用元原始的HttpURLConnection来调用第三方接口 package com.service; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; imp...
关于调用第三方接口和暴露接口
新入行,问问调用第三方接口有哪几种常见类型,我知道webservice,sdk应该也是,http还有REST,谁能帮忙介绍一下这几种方式需要哪些条件,怎么调用,还有暴露接口的话有几种方式,是直接写好controller就可以了嘛,算是什么方式类型?
HttpClient调用第三方接口
使用httpclient调用公安部接口 并接受返回的字符串转换为图片
http 简单调用第三方接口
仅做记录,注意post请求乱码问题~~ package com.tianan.delivery; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http
HttpClient 调用第三方接口-短信网关
 根据接口的请求规范生成签名、组装请求信息,利用httpClient调用请求,调用第三方接口一般都是如此。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</...
调用第三方接口大致流程
下面以风控为例,业务是调用第三方接口获取支付宝报告天机支付宝获取流程:1 本质:中转站:前台把参数传给我,我接受参数后传给天机,天机在传给支付宝,最后获取数据,在这个过程中      我们和天机都充当的是中转站的角色。2 流程:a 前台传客户的基本信息参数       b 后台接受参数,传给天机,天机返回淘宝的认证地址链接,后台把链接返回给前台;       c 前台打开链接,进入认证页面,进行认...
python 调用第三方接口方法
import aiohttp async def post(url, data, headers=None): async with aiohttp.ClientSession(headers=headers) as session: result = await session.post(url, data=data) return await res...
原生feign调用第三方接口
最近做一个小项目,小到只有一个页面,和几个接口而已。 因为项目是自己一个人在做,所以所有的定义都可以自己做主。 项目的目的是为了推送给第三方页面收集到的数据,所以对接是重头戏。 之前对接过各种第三方短信接口,用的无非是httpClient的get/post,用多了就想换一个技术熟悉一下。 一、引入依赖 啥也不说,先引入一堆东西,不是每一个都有用,但是用到了就很方便。 core:是必须要...
第三方接口该如何调用
众所周知,通过ajax调用第三方接口通常会出现跨域的问题,这是浏览器基于同源策略的保护机制。对于跨域问题,有很多解决的办法,网上有一大堆,但都是基于同一个应用系统,或者前后台虽然分离,但其前后台的程序组成一个工程,也就是说跨域问题通常需要改后台代码,而第三方接口没有提供后台代码,所以无法使用常用的方法解决跨域问题。通过近半天的探索:得出以下两种比较常见的调用接口的方法,一种使用的是form表单,另...
SpringBoot调用第三方接口
Spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接, 我们只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。 RestTemplate默认依赖JDK提供http连接的能力(HttpURLConnect...
Java代码调用第三方接口发送短信
添加依赖:               com.sun.mail               javax.mail             public class MessageTest { //短信服务提供商。这个就百度吧,很多,真的很多。我随便找的一家提供商。     private static String Url = "http://106.ihu
调用第三方接口没有跳转
1.问题描述:APP调用信用卡的接口,部分没有跳转到信用卡的页面 (1)app可以跳转到信用卡页面的银行包括广发银行、平安银行等 原因:http://cc.pingan.com/ 平安银行的url是采用http协议传输的 (2)app不能跳转到信用卡页面的银行包括浦发银行、交通银行等 填写资料后,跳转到的页面为空白, 原因:https://creditcard.bankcom...
POST方式调用第三方接口
1.第三方接口 @RequestMapping(value = "/updatePwd", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @ResponseBody public String GztzUpdatePwd(@RequestBody String password ...
httpclient 调用第三方接口
public class WebApiUtil { private static Logger logger = LoggerFactory.getLogger(WebApiUtil.class); public static boolean httpPost(String userID, String sessionID, String deviceID, String packag
HttpClientUtil工具类,调用第三方接口
该工具类是java 调用第三方接口时需要使用到的。HttpClientUtil 包含get和post方法。
调用第三方接口发送短信接口
调用第三方短信平台的接口,实时发送短信。需要申请一个帐号(account)和密码(password)。
调用第三方接口总结
1,需要账号的要先申请账号。 2,申请完账号,严格对照接口文档开发。 3,注意文档的每个字段。都有它的特殊含义。 4,拼接第三方的参数接口最好写在配置文件中,方便修改 5,之前做过的,face++,第三方(微信,qq)登录授权,微信,银联支付等 都是拼接参数,发送请求。成功后返回所需要的信息进行业务处理。 总之一句话:细心、严谨、规范。
调用第三方接口获取数据(简易版)
系统框架:springboot(与框架无关,仅作为记录) 实现流程:controller→service 举例:我现在打算调用京东万象的“笑话大全”api,通过这个接口调用数据,把笑话为我所用。 思路: (1)写一个controller,用来接收用户从页面传过来的请求 (2)写一个service,用于实现业务需求,在这里也就是实现“怎么调用三方接口”这个需求 (1)(2)是实现手段,那...
调用第三方接口~支付宝
你是大神,就别看了,浪费时间。这次遇到 对接支付宝支付,真的很难受。 大家都说简单,确实! 到最后,一大神帮我写了,就几行代码  【捂脸】 ,呵呵了~ 这几天都睡不好,本来项目说不用接支付的,到后来要了,无语!废话不多说,开始吧!-------------------------------------------------------------------------------------...
调用第三方接口发送短信
一、短信接口的相关规范 【1】短信接口有哪些? 大部分的云市场都有提供短信发送的接口,比如阿里云、腾讯云、网易云信等。 【2】短信模板申请要注意哪些?短信的字数最多为多少个字? 短信模板分6类:验证码短信、找回密码短信、发货通知短信、预约通知短信、会员营销短信、分销商审核短信。 短信模板的格式,由签名和内容两部分组成。签名不能超过8个字符,参数是 #code#或 #name#...
java调用聚合数据第三方接口出错 帮忙看看
package com.lc.test;rnrnimport java.io.BufferedReader;rnimport java.io.DataOutputStream;rnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.io.InputStreamReader;rnimport java.io.UnsupportedEncodingException;rnimport java.net.HttpURLConnection;rnimport java.net.URL;rnimport java.net.URLEncoder;rnimport java.util.HashMap;rnimport java.util.Map;rn rnimport net.sf.json.JSONObject;rn rn/**rn*天气预报调用示例代码 - 聚合数据rn*在线接口文档:http://www.juhe.cn/docs/73rn**/rn rnpublic class JuheDemo rn public static final String DEF_CHATSET = "UTF-8";rn public static final int DEF_CONN_TIMEOUT = 30000;rn public static final int DEF_READ_TIMEOUT = 30000;rn public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";rn rn //配置您申请的KEYrn public static final String APPKEY ="59c7d4995f1e15fe4876edfb5af6f910";rn rn //1.根据城市查询天气rn public static void getRequest1()rn String result =null;rn String url ="http://op.juhe.cn/onebox/weather/query";//请求接口地址rn Map params = new HashMap();//请求参数rn params.put("cityname","武汉");//要查询的城市,如:温州、上海、北京rn params.put("key",APPKEY);//应用APPKEY(应用详细页查询)rn params.put("dtype","");//返回数据的格式,xml或json,默认jsonrn rn try rn result =net(url, params, "GET");rn JSONObject object = JSONObject.fromObject(result);rn if(object.getInt("error_code")==0)rn System.out.println(object.get("result"));rn elsern System.out.println(object.get("error_code")+":"+object.get("reason"));rn rn catch (Exception e) rn e.printStackTrace();rn rn rn rn rn rn public static void main(String[] args) rn rn getRequest1();rn rn rn /**rn *rn * @param strUrl 请求地址rn * @param params 请求参数rn * @param method 请求方法rn * @return 网络请求字符串rn * @throws Exceptionrn */rn public static String net(String strUrl, Map params,String method) throws Exception rn HttpURLConnection conn = null;rn BufferedReader reader = null;rn String rs = null;rn try rn StringBuffer sb = new StringBuffer();rn if(method==null || method.equals("GET"))rn strUrl = strUrl+"?"+urlencode(params);rn rn URL url = new URL(strUrl);rn conn = (HttpURLConnection) url.openConnection();rn if(method==null || method.equals("GET"))rn conn.setRequestMethod("GET");rn elsern conn.setRequestMethod("POST");rn conn.setDoOutput(true);rn rn conn.setRequestProperty("User-agent", userAgent);rn conn.setUseCaches(false);rn conn.setConnectTimeout(DEF_CONN_TIMEOUT);rn conn.setReadTimeout(DEF_READ_TIMEOUT);rn conn.setInstanceFollowRedirects(false);rn conn.connect();rn if (params!= null && method.equals("POST")) rn try rn DataOutputStream out = new DataOutputStream(conn.getOutputStream());rn out.writeBytes(urlencode(params));rn catch (Exception e) rn e.printStackTrace();rn rn rn InputStream is = conn.getInputStream();rn reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));rn String strRead = null;rn while ((strRead = reader.readLine()) != null) rn sb.append(strRead);rn rn rs = sb.toString();rn catch (IOException e) rn e.printStackTrace();rn finally rn if (reader != null) rn reader.close();rn rn if (conn != null) rn conn.disconnect();rn rn rn return rs;rn rn rn //将map型转为请求参数型rn public static String urlencode(Map data) rn StringBuilder sb = new StringBuilder();rn for (Map.Entry i : data.entrySet()) rn try rn sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");rn catch (UnsupportedEncodingException e) rn e.printStackTrace();rn rn rn return sb.toString();rn rnrnrnrnrnrnrnrnrn错误提示rnrnException in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeExceptionrn at java.lang.ClassLoader.defineClass1(Native Method)rn at java.lang.ClassLoader.defineClass(Unknown Source)rn at java.security.SecureClassLoader.defineClass(Unknown Source)rn at java.net.URLClassLoader.defineClass(Unknown Source)rn at java.net.URLClassLoader.access$100(Unknown Source)rn at java.net.URLClassLoader$1.run(Unknown Source)rn at java.net.URLClassLoader$1.run(Unknown Source)rn at java.security.AccessController.doPrivileged(Native Method)rn at java.net.URLClassLoader.findClass(Unknown Source)rn at java.lang.ClassLoader.loadClass(Unknown Source)rn at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)rn at java.lang.ClassLoader.loadClass(Unknown Source)rn at com.lc.test.JuheDemo.getRequest1(JuheDemo.java:42)rn at com.lc.test.JuheDemo.main(JuheDemo.java:57)rnCaused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeExceptionrn at java.net.URLClassLoader$1.run(Unknown Source)rn at java.net.URLClassLoader$1.run(Unknown Source)rn at java.security.AccessController.doPrivileged(Native Method)rn at java.net.URLClassLoader.findClass(Unknown Source)rn at java.lang.ClassLoader.loadClass(Unknown Source)rn at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)rn at java.lang.ClassLoader.loadClass(Unknown Source)rn ... 14 morern
Java如何调用第三方接口:百度云文本审核
     随着中国互联网的发展,业务需求越来越复杂 。所有出现了许多做软件服务的公司,如: 阿里云、百度云、新浪、微信等等公司都推出了一系列的产品服务。这样给了小型公司带来福音。让开发者把精力放在了需求上面。      例如:以前的程序员开发一个邮箱发送的邮件的功能,他可能需要自己搭建一个邮箱服务器(麻烦),而现在的开发者只需要找到邮箱服务提供商(如:阿里云),然后对接他们的服务。   如何...
java调用第三方接口获取(保存)数据
后台java获取第三方接口数据: import org.springframework.web.client.RestTemplate; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.type.TypeReference; import org.codehaus.jackson.map.ObjectM...
java代码实现OCR---第三方接口
public static String documentOCR(String filepath){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); String result = ""; try { File file = new File(filepat...
Java新浪微博和QQ第三方接口
Java新浪微博和QQ第三方接口 Api 方法调用
java请求第三方接口
部署到客户服务器时遇到这个问题,请求第三方接口的方法没用了
关于第三方接口的问题(java语言)
平台和第三方的支付接口只需要实现了第三方提供的接口 发布之后就可以用了么???rn没看到过相关接口代码的实现.....
peoplesoft怎么调用和解析第三方接口?
peoplesoft怎么调用和解析第三方接口,比如.asmxn这样的webservice?
第三方接口
https://www.juhe.cn/docs/api/id/43
springboot整合RestTemplate调用第三方接口
一、首先需要编写一个RestTemplate配置类,放在入口类所在包或者其子包下: import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client....
通过配置文件和RestTemplate调用第三方接口
通过配置文件和RestTemplate调用第三方接口1. service层2. config包3.application-dev.yml 1. service层 @Autowired private apiUtils au; //调用api方法 String url = au.getUrl1(); String res =api(url); JSONObject getData = ...
简单调用第三方接口的案例代码
require "conn.php"; header("Access-Control-Allow-Origin:*");//允许任何访问(包括); header("Content-Type:Content-Type:text/html;charset=utf-8"); //编写用户手机归属地的接口的编写 //通过GET方式来获取手机号,从而判断手机归属地返回状态值给前端 $phone=@
java后台通过HttpClient调用第三方接口
java后台通过HttpClient调用第三方接口。 CommonFunForHttp类: public class CommonFunForHttp {    public static String getHTTP(String url){ StringBuilder builder = new StringBuilder(); HttpClient client =
C#调用第三方接口!!!!急急急
//使用 XmlTextReader 对象,创建和格式化 WSDL 文档 XmlTextReader reader = new XmlTextReader(url + "?wsdl"); ServiceDescription sd = ServiceDescription.Read(reader); 现在到了 url+“?wsdl”
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法