条码支付集成开发者指南

简介: 本帖仅供参考,非官方demo一、官方文档文档地址:点击【查看】sdk下载:点击【查看】官方demo下载地址:点击【查看】二、开发前准备工作1、签约:[url]https://openclub.

本帖仅供参考,非官方demo

一、官方文档

文档地址:点击【查看

sdk下载:点击【查看

官方demo下载地址:点击【查看

二、开发前准备工作

1、签约:[url]https://openclub.alipay.com/read.php?tid=276&fid=72[/url]

2、创建应用:[url]https://openclub.alipay.com/read.php?tid=1606&fid=72[/url]

3、生成密钥:[url]https://openclub.alipay.com/read.php?tid=1833&fid=69[/url]

4、下载服务端sdk:[url]https://docs.open.alipay.com/54/106370/[/url]

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

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

检查调用appid的应用功能列表中是否添加“当面付”并显示已签约。

三、接口集成示例代码

支付宝网关:

沙箱环境支付宝网:[url]https://openapi.alipay[/url]dev.com/gateway.do   

正式环境支付宝网关:[url]https://openapi.alipay.com/gateway.do[/url]

1、参数说明

(1)out_trade_no:商户订单号,由商户自定义设置;

(2)scene:支付场景

条码支付,取值:bar_code 

声波支付,取值:wave_code

(3)subject:商品标题

(4)auth_code:支付授权码,由用户支付宝app的“付钱”选项中获取

    

2、JAVA请求示例

沙箱账号

//沙箱APPID	public static final  String app_id = "填写您的appid";	//沙箱私钥pkcs8格式	public static final  String merchant_private_key = "填写您的私钥";	//支付宝公钥	public static final  String alipay_public_key = "填写您的支付宝公钥";	//沙箱网关地址	public static final  String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";//正式环境网关地址	//public static final  String gatewayUrl = "https://openapi.alipay.com/gateway.do";

(适用于jdk1.5以上)

   //获得初始化的AlipayClient		AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);		//创建API对应的request类				AlipayTradePayRequest request = new AlipayTradePayRequest(); //创建API对应的request类 		request.setNotifyUrl("https://openclub.alipay.com/");		AlipayTradePayModel model = new AlipayTradePayModel();		model.setOutTradeNo("2019012020321558348254");		//支付场景 条码支付,取值:bar_code ;声波支付,取值:wave_code		model.setScene("bar_code");		//支付宝钱包中的付款码    	model.setAuthCode("285532156582655772");		model.setSubject("我是subject");		model.setTotalAmount("0.01");		request.setBizModel(model);		//通过alipayClient调用API,获得对应的response类					AlipayTradePayResponse response = alipayClient.execute(request);		/**		//下面两代码是使用第三方应用授权传值方式 授权传app_auth_token写法	    // 第三方应用授权获取app_auth_token可参照该贴:[url]https://openclub.alipay.com/read.php?tid=1649&fid=43[/url] 获取app_auth_token	    //用于代商户发起请求,传值app_auth_token是谁授权的,钱就收到谁的账户中	      String app_auth_token="";  	      AlipayTradePayResponse response = alipayClient.execute(request,"",app_auth_token);	     **/		//判断是否请求成功		if(response.isSuccess()){			System.out.println("调用成功");		} else {			System.out.println("调用失败");		}		//返回信息		System.out.println( response.getBody());

返回结果

{"alipay_trade_pay_response":{"code":"10000","msg":"Success","buyer_logon_id":"uqq***@sandbox.com","buyer_pay_amount":"0.01","buyer_user_id":"2088102175794899","buyer_user_type":"PRIVATE","fund_bill_list":[{"amount":"0.01","fund_channel":"ALIPAYACCOUNT"}],"gmt_payment":"2019-01-28 10:31:09","invoice_amount":"0.01","out_trade_no":"2019012020321558348254","point_amount":"0.00","receipt_amount":"0.01","total_amount":"0.01","trade_no":"2019012822001494890500811033"},"sign":"Kesok3smU3DMBbG3ErBb2547mGedldcGa3XE16A/eo987ENHFjZOymjMA5qr+riIeVn3te7vljhvAoRpKaJ0IIH8lLMiCo8L+RNkpHQmoxMl6i0pZA/rbv1N4Hpd68xdKJbPp43AJ1CoEVzjKwPN3fw5XOCLTGAXk8Z3xGRmBRIOJuZa7/+hy/kD2geIOraZgt9fI22Ho9QGr1mz5UWgK/WgHVGpxef/QgUfQynqZcNVBYrXDkfL7RXPuSQdemXAienLPZwYf3d+7cYY+LNmqv89pu1heAVup/SqMYyTOhAZZXTA3kuOcWYJ2zCJTVE7RvpSweHp6lituAu6ZtgGMg=="}

 

3、PHP版请求参数

(适用于php 5.5以上环境)


  appId = '填写您的appid';$aop->rsaPrivateKey = '填写您的私钥';$aop->alipayrsaPublicKey='填写您的支付宝公钥';$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';$aop->apiVersion = '1.0';$aop->postCharset='utf-8';$aop->format='json';$aop->signType = 'RSA2';//生成随机订单号$date=date("YmdHis");$arr=range(1000,9999);shuffle($arr);$request = new AlipayTradePayRequest();$request->setBizContent("{" .    "\"out_trade_no\":\"".$date.$arr[0]."\"," .    "\"total_amount\":\"0.1\"," .	"\"scene\":\"bar_code\"," .	"\"auth_code\":\"282535540301553598\"," .	"\"subject\":\"tets\"," .    "\"product_code\":\"FACE_TO_FACE_PAYMENT\"" .    "}");$result = $aop->execute($request);//post请求//$result = $aop->pageExecute($request);var_dump($result);?>

返回信息

public 'alipay_trade_pay_response' =>     object(stdClass)[10]      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 '0.10' (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)[11]              ...      public 'gmt_payment' => string '2019-01-28 10:27:24' (length=19)      public 'invoice_amount' => string '0.10' (length=4)      public 'out_trade_no' => string '201901280227221355' (length=18)      public 'point_amount' => string '0.00' (length=4)      public 'receipt_amount' => string '0.10' (length=4)      public 'total_amount' => string '0.10' (length=4)      public 'trade_no' => string '2019012822001494890500811327' (length=28)  public 'sign' => string 'ctTkcTpVtF3WGioFaw5lVtI4R4hdss/t/nqUlDQGyDY3zQaW+L3j8t889sxtRd9KZB7wGIDikFr7kySxTAdT3vqcp6OdyFqTQbpO+XznZK8SkV3HX/rkooD/wjzA4niTa6pdkbo/DENYZlK2NLfxaQZ6lnJXLfXiRPwOH0fVz9Qf5/Nw5aKKSe+GWs5e8rcCqr9sbsWt7DhVdXHnb9BSCZTeOCU3vimZzHa7+0o9RuxcJ6H4FRzPm9MIgePSPyUS7eONWb2WEBmIYo40eKnmIjnr9wnnvlmo4x/L9UG1pAcc9gtMSAQN+DyPwQQtXE7bZgvFidDhlAZ+bSyrXa1dMQ==' (length=344)

 

4、.NET版请求参数

//应用appId沙箱            string appId = "appid";            //支付宝网关            string serverUrl = "https://openapi.alipaydev.com/gateway.do";            //沙箱支付宝公钥            string alipay_public_key = @"支付宝公钥";            //开发者原始私钥,千万不要用pkcs8格式的 沙箱            string merchant_private_key = @"商户应用私钥";            IAopClient client = new DefaultAopClient(serverUrl, appId, merchant_private_key, "json", "1.0", "RSA2", alipay_public_key, "GBK", false);            //IAopClient client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", Com.Alipay.Config.appId, Com.Alipay.Config.merchant_private_key, "json", "1.0", "RSA2", Com.Alipay.Config.alipay_public_key, "GBK", false);            AlipayTradePayRequest alipayRequest = new AlipayTradePayRequest();//创建API对应的request            AlipayTradePayModel model = new AlipayTradePayModel();            model.OutTradeNo = "20190128262815182234123";            model.Subject = "沙箱条码支付测试";            model.TotalAmount = "0.11";            model.Scene = "bar_code";            model.AuthCode = "289044087810204442";  //支付宝钱包中的付款码            model.ProductCode = "FACE_TO_FACE_PAYMENT";            alipayRequest.SetBizModel(model);            //第三方调用方式            // AlipayTradePayResponse response = client.Execute(alipayRequest, "", "app_auth_token");            //自调用方式            AlipayTradePayResponse response = client.Execute(alipayRequest);            Console.WriteLine("条码支付返回信息:" + response.Body);

返回结果

条码支付返回信息:{"alipay_trade_pay_response":{"code":"10000","msg":"Success","buyer_logon_id":"uqq***@sandbox.com","buyer_pay_amount":"0.11","buyer_user_id":"2088102175794899","buyer_user_type":"PRIVATE","fund_bill_list":[{"amount":"0.11","fund_channel":"ALIPAYACCOUNT"}],"gmt_payment":"2019-01-28 10:11:46","invoice_amount":"0.11","out_trade_no":"20190128262815182234123","point_amount":"0.00","receipt_amount":"0.11","total_amount":"0.11","trade_no":"2019012822001494890500811217"},"sign":"VzXHbX1hbviodKtHuL5McBEnQxcyF/jrIG95/ReTiJkVRwQPyAYPOH/piwvpLzRYtLDzg1AyTCo9EV1NVRIXm22YRILXsl4TCmtbZ3dngEbiXLRBXJIA7XSSDOAYPhRSdmm8h1EK8n4DyfSOWoSaZn1Aq6aPSg7ulDsapEgruWai9RW7oKbklpMvE+fodeSp5dLjQf284Zf4kojacnsSyhZEnMh9n+p7l+u+LWSQ68VvLM6lLwqFAZyzn+u5T5BnEhcRigETt312W4vTpPNbupBudIdVin7FB6fB1hpdAgPA+RdmiG0Yox9eS2O8BzMjpN5quN4qS5em0KHIz3iW7A=="}

四、注意事项

1、调用接口返回10003状态

1).金额过大,需要用户手动输入密码,正式环境金额大于1000,沙箱环境因账户而异,以实测为准;

2).账户余额不足,导致扣款失败;

3).系统异常,网络问题,导致付款失败;

2、交易是否成功

接口返回1000只代表接口调用成功,不代表交易成功,交易成功建议使用查询接口查询。

3、条码限额

1千块钱以内是无需输入密码,直接扣款的,返回支付成功;

大于一千则会扫码后会跳出密码输入框,要求输入密码,不输入密码会返回1003(等待支付)状态;

4、“码已失效,请刷新二维码后重试”

1.检查auth_code 是否传值错误;

2.检查支付请求网关是沙箱还是正式环境,是否跟获取code码的钱包相符,可能沙箱环境用的正式钱包的码,正式环境用的沙箱钱包的条码;

5、沙箱钱包下载

沙箱账号查看地址:[url]https://openhome.alipay.com/platform/appDaily.htm?tab=info[/url]

注意:沙箱钱包只适用于安卓手机,不支持ios;

6、辅助接口

alipay.trade.cancel(统一收单交易撤销接口)集成流程:[url]https://openclub.alipay.com/read.php?tid=13966&fid=56[/url]

alipay.trade.query(统一收单线下交易查询)集成流程:[url]https://openclub.alipay.com/read.php?tid=13842&fid=56[/url]

alipay.trade.refund(统一收单交易退款接口) 集成流程:[url]https://openclub.alipay.com/read.php?tid=13853&fid=56[/url]

alipay.trade.fastpay.refund.query(统一收单交易退款查询) :[url]https://openclub.alipay.com/read.php?tid=13962&fid=56[/url]

alipay.trade.close(统收单交易关闭接口)集成流程:[url]https://openclub.alipay.com/read.php?tid=13963&fid=56[/url]

alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址):[url]https://openclub.alipay.com/read.php?tid=14016&fid=56[/url]

 

 

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

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

目录
相关文章
|
6月前
|
Java API 开发工具
支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API
跨境支付公司和Docusign进行集成时,碰到问题时的解决方案。分别用SDK和API集成后的各自使用体验。
108 2
支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API
|
25天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
6月前
|
安全 Java 测试技术
Spring Boot集成支付宝支付:概念与实战
【4月更文挑战第29天】在电子商务和在线业务应用中,集成有效且安全的支付解决方案是至关重要的。支付宝作为中国领先的支付服务提供商,其支付功能的集成可以显著提升用户体验。本篇博客将详细介绍如何在Spring Boot应用中集成支付宝支付功能,并提供一个实战示例。
373 2
|
3月前
|
开发者 持续交付 Android开发
Xamarin开发者的秘密武器:如何通过持续集成与持续部署(CI/CD)实现高效、高质量的软件交付
【8月更文挑战第31天】在当今追求高效、高质量软件交付的时代,Xamarin开发者需像大厨般迅速烹制数字化佳肴,而持续集成(CI)与持续部署(CD)则是关键工具。CI要求开发者频繁将代码集成到共享仓库,利用自动化工具如Azure Pipelines或Jenkins自动编译、测试代码,确保质量。CD在此基础上进一步实现自动化部署,简化从开发到生产的全过程。借助如Visual Studio App Center这样的工具,Xamarin项目得以快速构建、测试并部署至Android和iOS平台,显著提升开发效率和代码质量,助力团队乘风破浪,驶向成功的彼岸。
34 0
|
3月前
|
持续交付 测试技术 jenkins
JSF 邂逅持续集成,紧跟技术热点潮流,开启高效开发之旅,引发开发者强烈情感共鸣
【8月更文挑战第31天】在快速发展的软件开发领域,JavaServer Faces(JSF)这一强大的Java Web应用框架与持续集成(CI)结合,可显著提升开发效率及软件质量。持续集成通过频繁的代码集成及自动化构建测试,实现快速反馈、高质量代码、加强团队协作及简化部署流程。以Jenkins为例,配合Maven或Gradle,可轻松搭建JSF项目的CI环境,通过JUnit和Selenium编写自动化测试,确保每次构建的稳定性和正确性。
62 0
|
4月前
|
XML JSON API
开发者必备:淘宝商品列表接口集成全攻略
淘宝开放平台提供的商品列表数据接口让开发者编程获取商品列表数据。接口支持按关键词、类目等查询条件获取商品详情,包括标题、价格等信息。具备灵活性高、数据丰富及操作便捷等特点。使用流程包括注册账号、构建并发送HTTP请求及处理响应数据。可用于电商数据分析、商品推荐等场景。开发者需遵守规定确保数据安全合法。[体验API](c0b.cc/R4rbK2)
|
5月前
|
安全 定位技术 API
探讨如何在Flutter中集成支付、地图等第三方服务,以及集成过程中需要注意的问题和最佳实践
【6月更文挑战第11天】本文介绍了在Flutter中集成第三方服务,如支付和地图,以增强应用功能和用户体验。开发者可通过官方或社区插件集成服务,注意服务选择、API调用、错误处理和用户体验。支付集成涉及选择服务、获取API密钥、引入插件、调用API及处理结果。地图集成则包括选择地图服务、获取API密钥、初始化地图组件和添加交互功能。集成时要选择稳定插件、仔细阅读文档,处理错误,优化性能并遵循安全规范。随着Flutter生态发展,更多优质服务将可供选择。
112 2
|
4月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统33-------如何在paypel,eaby集成资料资源推荐
支付系统33-------如何在paypel,eaby集成资料资源推荐
|
6月前
|
前端开发 定位技术 API
【Flutter前端技术开发专栏】Flutter中的第三方服务集成(如支付、地图等)
【4月更文挑战第30天】本文介绍了在Flutter中集成第三方服务,如支付和地图,以增强应用功能和用户体验。开发者可通过官方或社区插件集成服务,关注服务选择、API调用、错误处理和用户体验。支付集成涉及选择服务、获取API密钥、引入插件、调用API及处理结果。地图集成则需选择地图服务、获取API密钥、初始化地图并添加交互功能。集成时注意选择稳定插件、阅读文档、处理异常、优化性能和遵循安全规范。随着Flutter生态发展,更多第三方服务将可供选择。
91 0
【Flutter前端技术开发专栏】Flutter中的第三方服务集成(如支付、地图等)
下一篇
无影云桌面