支付宝支付流程解读

简介: 支付宝支付流程解读

系统交互流程

请求 alipay.trade.wap.pay(手机网站支付接口2.0接口)生成 form 表单数据返回给前端,前端模拟表单提交唤起收银台,用户输入支付密码确认支付后创建订单。

注意:订单创建实际创建时间也为用户支付时间,非唤起收银台时间。

示例代码

1. bizContent={
2. "out_trade_no":"20220923010102211",//商户交易号,确保唯一,
3. "total_amount":0.01,//订单总金额
4. "subject":"手机网站支付",//订单标题
5. "product_code":"QUICK_WAP_WAY",
6. "timeout_express":"30m",//可选,订单相对超时时间,在订单创建后开始生效,超时未支付订单将关闭。
7. "quit_url":"http:\/\/domain.com\/quit",//用户付款中途退出返回商户网站的地址
8. "business_params":"{\"data\":123}",//非必填,业务信息,具体值要和支付宝约定
9. "passback_params":"merchantBizType%3d3C%26merchantBizNo%3d2016010101111"//非必填,商户自定义参数需要urlEncode
10. }
1. AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); //获得初始化的AlipayClient
2. AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();//创建API对应的request
3. alipayRequest.setReturnUrl("http://domain.com/CallBack/return_url.jsp");
4. alipayRequest.setNotifyUrl("http://domain.com/CallBack/notify_url.jsp");//在公共参数中设置回跳和通知地址
5. alipayRequest.setBizContent(参考上面bizContent值示例);
6. try {
7.  form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单
8. } catch (AlipayApiException e) {
9.  e.printStackTrace();
10. }

参数名称

参数说明

out_trade_no

商户订单号,需保证在商家系统中唯一。

subject

商品的标题/交易标题/订单标题/订单关键字等。不可使用特殊字符,如 /,=,& 等。

total_amount

订单金额。

quit_url

用户付款中途退出返回商户网站的地址。

time_expire

非必填,过期时间,用户多长时间不支付订单关闭,如果不传默认是和签约协议保持一致。

enable_pay_channels

非必填,可用渠道,用户只能在指定渠道范围内支付 。当有多个渠道时用 “,” 分隔 。

disable_pay_channels

非必填,禁用渠道,用户不可用指定渠道支付 ,当有多个渠道时用 “,” 分隔 。enable_pay_channels 与 disable_pay_channels 互斥。具体支持的支付渠道可查看 常见问题

return_url

支付成功后点击完成会自动跳转回商家页面地址, 同时在 URL 地址上附带支付结果参数,回跳参数可查看本文 附录 > 前台回跳参数说明。在 iOS 系统中,唤起支付宝客户端支付完成后,不会自动回到浏览器或商家 App。用户可手工切回到浏览器或商家 App。

notify_url

异步通知地址,用于接收支付宝推送给商户的支付/退款成功的消息。

business_params

非必填 ,业务信息,具体值要和支付宝约定。关于安全方面的可以参考 商户风险联防数据回传合作

passback_params

非必填,商户自定义参数,需要UrlEncode处理之后传入。passback_params只在异步通知中返回,同步通知不返回。

注意:由于前台回跳的不可靠性,前台回跳只能作为商家支付结果页的入口,最终支付结果必须以异步通知或查询接口返回为准,不能依赖前台回跳。

相关文章
|
传感器 监控 Java
如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了
CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。
4115 0
如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了
|
Python
Python编写动量交易策略(上)
Python编写动量交易策略(上)
1368 0
Python编写动量交易策略(上)
|
XML 移动开发 API
微信支付开发(7) H5支付
关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html    本文介绍微信支付下的H5支付实现流程。
3760 1
|
存储 SQL 关系型数据库
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
手机网站支付quit_url参数详解
一、quit_url参数说明   quit_url参数是手机网站支付用于在H5页面收银台中添加返回按钮的,但是该参数只有在支付的时候唤起H5收银台才会生效,对于唤起支付宝钱包支付是不生效的。 二、传参以及调用示例   传值代码示例: AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.
3006 0
|
API 开发者
WebSocket API 中的 onerror 事件和 close 事件有什么不同?
【10月更文挑战第26天】`onerror`事件侧重于通知开发者WebSocket连接过程中出现的错误,以便进行相应的错误处理和恢复;而`close`事件则主要用于在连接关闭时进行资源清理和根据关闭情况采取适当的后续操作。两者在WebSocket应用的开发中都起着重要的作用,帮助开发者更好地管理和处理WebSocket连接的各种情况。
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
667 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
9月前
|
机器学习/深度学习 人工智能 Java
飞算JavaAI代码生成实战:如何用AI技术减少70%重复编码
飞算JavaAI是首个聚焦Java语言的IDEA插件,利用AI技术减少70%的重复编码工作。通过自然语言输入需求,自动完成需求分析、软件设计、逻辑处理和代码生成,全流程开发文档自动生成,显著提升开发效率。开发者可自由调整优化,快速交付高质量成果。飞算JavaAI炫技赛现已开启,欢迎体验高效开发新篇章。
|
缓存 NoSQL Java
京东电商下单黄金链路:防止订单重复提交与支付的深度解析
【10月更文挑战第21天】在电商领域,尤其是在像京东这样的大型电商平台中,防止订单重复提交与支付是一项至关重要的任务。
619 44

热门文章

最新文章