【支付宝支付】支付宝支付对接总结(后端)
前言
本篇博客主要总结工作中对接支付宝支付的心得体会以及常用的几种支付宝支付方式
支付宝支付方式
参考支付宝开放平台官方网站 https://open.alipay.com/api
可以看到支付宝主要提供了以下的支付方式
1.当面付
2.APP支付
3.小程序支付
4.手机网站支付
5.电脑网站支付
.....
其中常用的支付方式为:APP支付,当面付,小程序支付
APP支付
参考文档链接
https://opendocs.alipay.com/open/204
使用场景
APP支付适用于商家在 App 应用中集成支付宝支付功能。 商家APP调用支付宝提供的 SDK,SDK 再调用支付宝APP内的支付模块。如果用户已安装支付宝 APP,商家 APP 会跳转到支付宝中完成支付,支付完后跳回到商家APP内,最后展示支付结果。如果用户没有安装支付宝 APP,商家 APP 内会调起支付宝网页支付收银台,用户登录支付宝账户,支付完后展示支付结果。 目前支持手机系统有:iOS(苹果)、Android(安卓)。
支付流程
1.用户在商家 App 中选择商品下单、确认购买,进入支付环节,选择支付宝,用户点击确认支付,如图1;
2.进入到支付宝页面,调起支付宝支付,出现确认支付界面,如图2;
3.用户确认收款方和金额,点击立即支付后出现输入密码界面,如图3;
4.输入正确密码后,支付宝端显示支付结果,如图 4;
5.自动回跳到商家 App 中,商家根据付款结果个性化展示订单处理结果,如图 5。
核心API接口
app支付接口:alipay.trade.app.pay(app支付接口2.0)
场景:外部商户APP唤起快捷SDK创建订单并支付
接口返回值:一串带很多参数的没有域名的URL参数,例如,客户端拿到这串参数后,会在参数拼接到URL, https://openapi.alipay.com/gateway.do中
charset=UTF-8&method=alipay.trade.app.pay&sign=k0w1DePFqNMQWyGBwOaEsZEJuaIEQufjoPLtwYBYgiX%2FRSkBFY38VuhrNumXpoPY9KgLKtm4nwWz4DEQpGXOOLaqRZg4nDOGOyCmwHmVSV5qWKDgWMiW%2BLC2f9Buil%2BEUdE8CFnWhM8uWBZLGUiCrAJA14hTjVt4BiEyiPrtrMZu0o6%2FXsBu%2Fi6y4xPR%2BvJ3KWU8gQe82dIQbowLYVBuebUMc79Iavr7XlhQEFf%2F7WQcWgdmo2pnF4tu0CieUS7Jb0FfCwV%2F8UyrqFXzmCzCdI2P5FlMIMJ4zQp%2BTBYsoTVK6tg12stpJQGa2u3%2BzZy1r0KNzxcGLHL%2BwWRTx%2FCU%2Fg%3D%3D¬ify_url=http%3A%2F%2F114.55.81.185%2Fopendevtools%2Fnotify%2Fdo%2Fbf70dcb4-13c9-4458-a547-3a5a1e8ead04&version=1.0&app_id=2014100900013222&sign_type=RSA×tamp=2021-02-02+14%3A11%3A40&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json
当面付
参考文档链接
https://opendocs.alipay.com/open/194
使用场景(两种,这里主要是介绍扫码支付)
当面付包括付款码支付和扫码支付两种收款方式。适用于线下实体店支付、面对面支付、自助售货机等场景。
1.付款码支付:商家使用扫码枪或其他扫码机具扫描用户出示的付款码,来实现收款。
2.扫码支付:商家提供收款二维码,由用户通过支付宝扫码支付,来实现收款。
支付流程
核心API接口
统一收单线下交易预创建: alipay.trade.precreate
场景:收银员通过收银台或商户后台调用支付宝接口,生成二维码后,展示给用户,由用户扫描二维码完成订单支付。
接口返回值:一串JSON数据,其中qr_code是支付宝链接,可以将改链接转换为二维码呈现给用户,用户支付支付宝扫码完成支付
{ "alipay_trade_precreate_response": { "code": "10000", "msg": "Success", "out_trade_no": "6823789339978248", "qr_code": "https://qr.alipay.com/bavh4wjlxf12tper3a" }, "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" }
注意:
商户如果有APP也可以使用这个返回的链接,跳转到支付宝进行支付
那么同样的,微信扫码支付是否可以通过商户的APP跳转微信进行支付呢?
答案是不行的,因为微信使用的是自有的协议(Wx协议,例如:weixin://wxpay/bizpayurl?pr=p4lpSuKzz),不是标准的http协议
注意事项
1.无论是商户介入当面付还是APP支付,都需要提前签约
2.常见的错误,签名错误,客户端无法拉起支付,等等,可以参考支付宝支持,根据排查问题流程进行自查
https://opensupport.alipay.com/support/helpcenter/89?ant_source=zsearchant_source%3Dmanual&recommend=b40629faf04c437cab2dbb8a5e39a73d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-03-31 【面试题2020-04-01】说说对AQS的理解
2020-03-31 【Java】Java中的四种对象引用