alipay.trade.query(统一收单线下交易查询)集成流程

简介: 接口名称:统一收单线下交易查询英文名称:alipay.trade.query用于查询订单是否存在以及订单的详细信息;一、文档地址官方文档地址:[url]https://docs.open.alipay.com/api_1/alipay.trade.query/[/url]二、开发前准备工作调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url]注意事项:1、支持沙箱测试;2、需签约并添加功能;3、支持第三方调用。

接口名称:统一收单线下交易查询

英文名称:alipay.trade.query

用于查询订单是否存在以及订单的详细信息;

一、文档地址

官方文档地址:[url]https://docs.open.alipay.com/api_1/alipay.trade.query/[/url]

二、开发前准备工作

调用步骤:[url]https://openclub.alipay.com/read.php?tid=12194&fid=69[/url]

注意事项:1、支持沙箱测试;2、需签约并添加功能;3、支持第三方调用。

如何签约以及签约无法成功等相关签约问题[url]https://openclub.alipay.com/read.php?tid=276&fid=72[/url]

注:该接口为辅助接口,只要签约当面付、手机网站支付、电脑网站支付和APP支付,四个支付接口中其中一个就可以调用。

三、接口集成代码示例

1、参数说明

(1)out_trade_no:商户订单号,该参数值为支付接口中设置的out_trade_no参数值;

(2)trade_no:支付宝交易号,该参数值为支付接口订单创建后返回的trade_no参数值;

注:out_trade_no和trade_no至少必传其中一个参数,两者同时设置优先取值trade_no。

2、JAVA版请求示例

public static void main(String[] args) throws AlipayApiException {		AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);		AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();		//out_trade_no(外部订单号)和trade_no(支付宝交易号)二选一用 即可查询		AlipayTradeQueryModel model = new AlipayTradeQueryModel();		model.setOutTradeNo("20150320010101004498");		//model.setTradeNo("2019031222001494890500825908");		request.setBizModel(model);		AlipayTradeQueryResponse response = alipayClient.execute(request);		System.out.println(response.getBody());}

返回的响应参数示例:

{"alipay_trade_query_response":{"code":"10000","msg":"Success","buyer_logon_id":"uqq***@sandbox.com","buyer_pay_amount":"2.00","buyer_user_id":"2088102175794899","buyer_user_type":"PRIVATE","fund_bill_list":[{"amount":"2.00","fund_channel":"ALIPAYACCOUNT"}],"invoice_amount":"2.00","out_trade_no":"20150320010101004498","point_amount":"0.00","receipt_amount":"2.00","send_pay_date":"2019-03-12 10:50:09","total_amount":"2.00","trade_no":"2019031222001494890500825908","trade_status":"TRADE_SUCCESS"},"sign":"gK9/bRceHVXou0vX4U+GgQv+F9pgL15lDtpQqR/y2glaWywOvYUsmV1/5UpbVFOP28yXHMEQJxqwp8j81GuF8zQsXlYmdlaOgZ0BaTa3Eh82zftejcRkIwgiLhUg3ZQBfbpjExgazhF0CvGoNaauyIfoKICJF61vsvN0ISAOXEPze+/XVmzjTueFUn3OWoknaD/mxtlGYOe67AU5vc+ueOUklaxis0ERivJB+eo9DWUDA3NzRvms2arkaQ3BEdZ4+HMMI4wK94RxpUchMbZHmta+msMTSpDtRRxWgr9gT9XFw59ZgYr/rpZYPCHKAAp/RbhzOLpnpBlAE/eqLSZqeA=="}

 

3、PHP版请求示例

<?phprequire_once 'AopSdk.php';$aop = new AopClient ();$aop->appId = '填写您的appid';$aop->rsaPrivateKey = '填写您的私钥';$aop->alipayrsaPublicKey='填写您的支付宝公钥';$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';$aop->apiVersion = '1.0';$aop->signType = 'RSA2';$aop->postCharset='utf-8';$aop->format='json';$date=date("YmdHis");$arr=range(1000,9999);shuffle($arr);$request = new AlipayTradeQueryRequest ();$request->setBizContent("{" .		"\"out_trade_no\":\"20150320010101004498\"," .		"\"trade_no\":\"2019031222001494890500825908\"" .		"  }");$result = $aop->execute($request); //第三方调用//$result = $aop->execute($request,"","app_auth_token"); var_dump($result);

返回的响应参数示例:

object(stdClass)[11]  public 'alipay_trade_query_response' =>     object(stdClass)[9]      public 'code' => string '10000' (length=5)      public 'msg' => string 'Success' (length=7)      public 'buyer_logon_id' => string 'uqq***@sandbox.com' (length=18)      public 'buyer_pay_amount' => string '2.00' (length=4)      public 'buyer_user_id' => string '2088102175794899' (length=16)      public 'buyer_user_type' => string 'PRIVATE' (length=7)      public 'fund_bill_list' =>         array (size=1)          0 =>             object(stdClass)[10]              ...      public 'invoice_amount' => string '2.00' (length=4)      public 'out_trade_no' => string '20150320010101004498' (length=20)      public 'point_amount' => string '0.00' (length=4)      public 'receipt_amount' => string '2.00' (length=4)      public 'send_pay_date' => string '2019-03-12 10:50:09' (length=19)      public 'total_amount' => string '2.00' (length=4)      public 'trade_no' => string '2019031222001494890500825908' (length=28)      public 'trade_status' => string 'TRADE_SUCCESS' (length=13)  public 'sign' => string 'gK9/bRceHVXou0vX4U+GgQv+F9pgL15lDtpQqR/y2glaWywOvYUsmV1/5UpbVFOP28yXHMEQJxqwp8j81GuF8zQsXlYmdlaOgZ0BaTa3Eh82zftejcRkIwgiLhUg3ZQBfbpjExgazhF0CvGoNaauyIfoKICJF61vsvN0ISAOXEPze+/XVmzjTueFUn3OWoknaD/mxtlGYOe67AU5vc+ueOUklaxis0ERivJB+eo9DWUDA3NzRvms2arkaQ3BEdZ4+HMMI4wK94RxpUchMbZHmta+msMTSpDtRRxWgr9gT9XFw59ZgYr/rpZYPCHKAAp/RbhzOLpnpBlAE/eqLSZqeA==' (length=344)

 

4、.NET版请求示例

 IAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", "RSA2", config.alipay_public_key, config.charset, false);            AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();            request.BizContent = "{" +                    "\"out_trade_no\":\"20150320010101004498\"," +                     "\"trade_no\":\"2019031222001494890500825908\"" +                     "}";            AlipayTradeQueryResponse response = client.Execute(request);            Console.WriteLine(response.Body);

返回的响应参数示例:

{"alipay_trade_query_response":{"code":"10000","msg":"Success","buyer_logon_id":"uqq***@sandbox.com","buyer_pay_amount":"2.00","buyer_user_id":"2088102175794899","buyer_user_type":"PRIVATE","fund_bill_list":[{"amount":"2.00","fund_channel":"ALIPAYACCOUNT"}],"invoice_amount":"2.00","out_trade_no":"20150320010101004498","point_amount":"0.00","receipt_amount":"2.00","send_pay_date":"2019-03-12 10:50:09","total_amount":"2.00","trade_no":"2019031222001494890500825908","trade_status":"TRADE_SUCCESS"},"sign":"gK9/bRceHVXou0vX4U+GgQv+F9pgL15lDtpQqR/y2glaWywOvYUsmV1/5UpbVFOP28yXHMEQJxqwp8j81GuF8zQsXlYmdlaOgZ0BaTa3Eh82zftejcRkIwgiLhUg3ZQBfbpjExgazhF0CvGoNaauyIfoKICJF61vsvN0ISAOXEPze+/XVmzjTueFUn3OWoknaD/mxtlGYOe67AU5vc+ueOUklaxis0ERivJB+eo9DWUDA3NzRvms2arkaQ3BEdZ4+HMMI4wK94RxpUchMbZHmta+msMTSpDtRRxWgr9gT9XFw59ZgYr/rpZYPCHKAAp/RbhzOLpnpBlAE/eqLSZqeA=="}

四、注意事项

1、如何判断交易状态

根据接口返回响应参数trade_status(交易状态)进行判断,详见trade_status参数分析如下:

支付宝交易状态快速掌握:[url]https://openclub.alipay.com/read.php?tid=1295&fid=72[/url]

交易状态问题解析:[url]https://openclub.alipay.com/read.php?tid=5407&fid=72[/url]

2、如何判断用户支付渠道

根据接口返回响应参数fund_bill_list(交易支付使用的资金渠道)的fund_channel(交易使用的资金渠道参数)进行判断:

fund_channel返回对应渠道参考:[url]https://alipay.open.taobao.com/doc2/detail?treeId=26&articleId=103259&docType=1[/url]

五、常见报错

1、Q:报错ACQ.TRADE_NOT_EXIST(交易不存在)?

A:解决方案:[url]https://openclub.alipay.com/read.php?tid=13844&fid=56[/url]

 

如果还是报错,请按如下方式进行提问:

正确提问方式:使用环境(沙箱还是正式环境)+接口名称(中文+英文)+ 请求参数 + 报错信息详情

目录
相关文章
|
4月前
|
SQL 分布式计算 BI
Dataphin中集成SelectDB以支持报表分析和API查询
本文介绍了一家零售企业如何利用SelectDB进行BI分析及数据服务API的查询。通过Dataphin的数据集成、SQL研发等功能,将CRM、ERP等系统数据汇聚加工,并推送至SelectDB构建销售数据集市层,以支持报表分析及API查询。SelectDB具备实时、统一、弹性及开放特性,适用于多种实时分析场景。文章详细描述了在Dataphin中集成SelectDB的整体方案、数据源配置、数据集成、数据开发及数据服务流程。
199 1
|
5月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
119 1
|
4月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
186 0
|
5月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
113 0
|
5月前
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
63 0
|
5月前
|
SQL 存储 数据管理
掌握SQL Server Integration Services (SSIS)精髓:从零开始构建自动化数据提取、转换与加载(ETL)流程,实现高效数据迁移与集成——轻松上手SSIS打造企业级数据管理利器
【8月更文挑战第31天】SQL Server Integration Services (SSIS) 是 Microsoft 提供的企业级数据集成平台,用于高效完成数据提取、转换和加载(ETL)任务。本文通过简单示例介绍 SSIS 的基本使用方法,包括创建数据包、配置数据源与目标以及自动化执行流程。首先确保安装了 SQL Server Data Tools (SSDT),然后在 Visual Studio 中创建新的 SSIS 项目,通过添加控制流和数据流组件,实现从 CSV 文件到 SQL Server 数据库的数据迁移。
901 0
|
3月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
2月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
67 0
|
6月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
342 6
|
6月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
475 4

热门文章

最新文章