app调起支付宝-后端预支付
app调起支付宝-后端预支付
- 前言
- 流程详情
- 第一步 配置商户
- 第二步 引入SDK
- 第三步 实际调用
- 注意事项
- 调试
- 调试失败的表现
- 调试成功的表现
前言
- 语言:php
- 目的:返回前端正确的、可调用的支付宝支付参数
- 官方文档:alipay.trade.app.pay(app支付接口2.0)
流程详情
第一步 配置商户
参见官方文档。略
第二步 引入SDK
官方SDK下载地址:https://opendocs.alipay.com/open/02np96
本文只涉及app支付,即从app端调起支付宝,在支付完成后返回app。所以只用到SDK中两个类,AopClient与AlipayTradeAppPayRequest。
单讲APP支付涉及的文件有:
- AlipayConfig.php
- AopClient.php ------ 主类
- AopEncrypt.php
- EncryptParseItem.php
- EncryptResponseData.php
- SignData.php
- request/AliPayTradeAppPayRequest.php ------ app支付类
第三步 实际调用
贴上官方文档的示例代码:
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = 'your app_id';
// 二选一(官方示例是一行字符串)
$aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串';
// 二选一(我使用的是文件路径)
$aop->rsaPrivateKeyFilePath = '私钥文件路径,如: /data/www/project/config/rsaPrivate.pem';$aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串'; // 第一步中可以找到
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset='GBK';
$aop->format='json';
$object = new stdClass();
$object->out_trade_no = '20210817010101004';
$object->total_amount = 0.01;
$object->subject = '测试商品';
$object->product_code ='QUICK_MSECURITY_PAY';
$object->time_expire = '2022-08-01 22:00:00';$json = json_encode($object);
$request = new AlipayTradeAppPayRequest();
$request->setNotifyUrl('');
$request->setBizContent($json);$result = $aop->sdkExecute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
if(!empty($resultCode)&&$resultCode == 10000){// 返回的格式echo $result;
} else {echo "失败";
}
$result
返回示例
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
前端用返回的$request
调用前端SDK,唤起支付宝即可。
注意事项
调试
用返回的$result
作为请求参数,请求https://openapi.alipay.com/gateway.do?
支付宝支付地址。
如: 调试支付宝支付示例
调试失败的表现
在调试步骤中,拼接支付地址和参数,直接浏览器访问拼接好的支付链接。
可能会显示:
处理办法:
- 后台配置有误,重新配置publicKey
- 或根据调试信息进行处理
调试成功的表现
出现下面这个界面,说明调试成功了。返回的$result
没有问题,可供前端使用了:
End
app调起支付宝-后端预支付相关推荐
- android支付宝支付微信支付封装,如何在Android App中集成支付宝和微信支付功能
前言 本文主要介绍如何在 Android App 里集成支付宝和微信支付的功能,文中将实现的步骤一步步介绍的非常详细,对同样遇到这个问题的朋友相信会是一个很好的参考,下面话不多说了,来一起看看详细的介 ...
- 【支付】uniapp之app中的支付宝、微信支付的实现及orderInfo的说明
App平台支付流程 流程:支付平台功能申请 -> manifest.json 里配置支付参数 -> uni-app 里调用 API 进行支付.具体参考uniapp官方提供的app平台支付流 ...
- 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付
虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支 ...
- h5支付不能打开支付宝 ios_iOS WKWebview中无法调起支付宝/微信客户端支付问题的解决方法...
这两个的解决思路都是要在下面这个方法中先拦截相应的url,再单独处理 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAct ...
- 从支付宝SDK的支付流程理解什么是公钥和私钥,什么是加密和数字签名
2019独角兽企业重金招聘Python工程师标准>>> 名词解释 什么是公钥和私钥 首先要明白公钥和私钥只是一个相对概念,就是说我们不能单纯的去称呼一对密钥中的一个为公钥,另一个为私 ...
- 一文读懂H5,APP,WAP,公众号支付等多种支付方式的区别
文章目录 线上和线下 线下支付场景分类 付款码支付 扫码支付 线上支付场景 APP支付 公众号支付 H5支付和手机WAP支付 小程序支付 网关支付 从事支付行业开发多年,做过很多不同的场景.发现各种支 ...
- android通过webview调起支付宝app支付
android通过webview调起支付宝app支付 webview在加载网页的时候会默认调起手机自带的浏览器加载网页,用户体验不好.但当用户设置浏览器客户端(setWebViewClient)设置这 ...
- PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付
第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...
- Android APP如何实现支付宝支付
一.背景介绍: 业务需求需要,故加入支付宝支付功能. 二.如何实现. 1.关于APP调用支付宝支付的大致流程: 商家APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块.如果用户已经安装 ...
最新文章
- UVA-10954 Add All
- 内部代码显示苹果iOS 15.5 Beta新增支持外部链接支付
- CodeReview 常见代码问题( 下 )
- 微信分享出错问题,MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
- mysql 两阶段加锁_MySql-两阶段加锁协议
- cjson构建_利用cJSON解析和创建JSON字符串
- 3904三极管是什么功能_想要单片机顺手,搞懂这些三极管知识!
- 计算机专业的大一学生暑假6,一个计算机专业大三学生的一天 Day6
- 企业微信服务商集成解决方案
- linux 内存使用计算
- idea中用java不能自动导包的解决办法
- JS 实现数字滚动变化效果
- SET NOCOUNT { ON | OFF }
- K型热电偶(k-type)温度与电压转换计算笔记
- Python爬虫教程:微医挂号网医生数据抓取
- 他,是碾压爱迪生的科技天才!尼古拉特斯拉的一生竟是这样...
- 开始使用TreeATE
- K8S在一个Pod中创建多个容器
- 雅虎通网络摄像头被黑客攻击
- 打不开“计算机管理”
热门文章
- 微信小程序:简单舒服新UI装逼制作神器
- 利用51单片机和DS12C887时钟芯片制作万年历
- 电源芯片使能管脚EN的6种玩法,助力设计稳定可靠的电源
- 读书百客:《嘲鲁儒》赏析
- MATLAB浮点数详解
- 【实用工具01】免费的比较工具Meld
- 《SolidWorks 2014中文版机械设计从入门到精通》——2.5 尺寸标注
- 学术英语理工(第二版)Unit3课文翻译
- [日常] [Python] 批量将某个文件夹下的.ppt/.pptx/.pptm转换为.pdf文件,并且将其移入/ppt文件夹中
- 爱普生打印机无法正常工作的解决方法