app调起支付宝-后端预支付

  • 前言
  • 流程详情
    • 第一步 配置商户
    • 第二步 引入SDK
    • 第三步 实际调用
  • 注意事项
    • 调试
    • 调试失败的表现
    • 调试成功的表现

前言

  1. 语言:php
  2. 目的:返回前端正确的、可调用的支付宝支付参数
  3. 官方文档:alipay.trade.app.pay(app支付接口2.0)

流程详情

第一步 配置商户

参见官方文档。略

第二步 引入SDK

官方SDK下载地址:https://opendocs.alipay.com/open/02np96

本文只涉及app支付,即从app端调起支付宝,在支付完成后返回app。所以只用到SDK中两个类,AopClient与AlipayTradeAppPayRequest。

单讲APP支付涉及的文件有:

  1. AlipayConfig.php
  2. AopClient.php ------ 主类
  3. AopEncrypt.php
  4. EncryptParseItem.php
  5. EncryptResponseData.php
  6. SignData.php
  7. 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&notify_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&timestamp=2021-02-02+14%3A11%3A40&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json

前端用返回的$request调用前端SDK,唤起支付宝即可。

注意事项

调试

用返回的$result作为请求参数,请求https://openapi.alipay.com/gateway.do?支付宝支付地址。
如: 调试支付宝支付示例

调试失败的表现

在调试步骤中,拼接支付地址和参数,直接浏览器访问拼接好的支付链接。
可能会显示:

处理办法:

  1. 后台配置有误,重新配置publicKey
  2. 或根据调试信息进行处理

调试成功的表现

出现下面这个界面,说明调试成功了。返回的$result没有问题,可供前端使用了:


End

app调起支付宝-后端预支付相关推荐

  1. android支付宝支付微信支付封装,如何在Android App中集成支付宝和微信支付功能

    前言 本文主要介绍如何在 Android App 里集成支付宝和微信支付的功能,文中将实现的步骤一步步介绍的非常详细,对同样遇到这个问题的朋友相信会是一个很好的参考,下面话不多说了,来一起看看详细的介 ...

  2. 【支付】uniapp之app中的支付宝、微信支付的实现及orderInfo的说明

    App平台支付流程 流程:支付平台功能申请 -> manifest.json 里配置支付参数 -> uni-app 里调用 API 进行支付.具体参考uniapp官方提供的app平台支付流 ...

  3. 支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付

    虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支 ...

  4. h5支付不能打开支付宝 ios_iOS WKWebview中无法调起支付宝/微信客户端支付问题的解决方法...

    这两个的解决思路都是要在下面这个方法中先拦截相应的url,再单独处理 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAct ...

  5. 从支付宝SDK的支付流程理解什么是公钥和私钥,什么是加密和数字签名

    2019独角兽企业重金招聘Python工程师标准>>> 名词解释 什么是公钥和私钥 首先要明白公钥和私钥只是一个相对概念,就是说我们不能单纯的去称呼一对密钥中的一个为公钥,另一个为私 ...

  6. 一文读懂H5,APP,WAP,公众号支付等多种支付方式的区别

    文章目录 线上和线下 线下支付场景分类 付款码支付 扫码支付 线上支付场景 APP支付 公众号支付 H5支付和手机WAP支付 小程序支付 网关支付 从事支付行业开发多年,做过很多不同的场景.发现各种支 ...

  7. android通过webview调起支付宝app支付

    android通过webview调起支付宝app支付 webview在加载网页的时候会默认调起手机自带的浏览器加载网页,用户体验不好.但当用户设置浏览器客户端(setWebViewClient)设置这 ...

  8. PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付

    第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...

  9. Android APP如何实现支付宝支付

    一.背景介绍: 业务需求需要,故加入支付宝支付功能. 二.如何实现. 1.关于APP调用支付宝支付的大致流程: 商家APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块.如果用户已经安装 ...

最新文章

  1. UVA-10954 Add All
  2. 内部代码显示苹果iOS 15.5 Beta新增支持外部链接支付
  3. CodeReview 常见代码问题( 下 )
  4. 微信分享出错问题,MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
  5. mysql 两阶段加锁_MySql-两阶段加锁协议
  6. cjson构建_利用cJSON解析和创建JSON字符串
  7. 3904三极管是什么功能_想要单片机顺手,搞懂这些三极管知识!
  8. 计算机专业的大一学生暑假6,一个计算机专业大三学生的一天 Day6
  9. 企业微信服务商集成解决方案
  10. linux 内存使用计算
  11. idea中用java不能自动导包的解决办法
  12. JS 实现数字滚动变化效果
  13. SET NOCOUNT { ON | OFF }
  14. K型热电偶(k-type)温度与电压转换计算笔记
  15. Python爬虫教程:微医挂号网医生数据抓取
  16. 他,是碾压爱迪生的科技天才!尼古拉特斯拉的一生竟是这样...
  17. 开始使用TreeATE
  18. K8S在一个Pod中创建多个容器
  19. 雅虎通网络摄像头被黑客攻击
  20. 打不开“计算机管理”

热门文章

  1. 微信小程序:简单舒服新UI装逼制作神器
  2. 利用51单片机和DS12C887时钟芯片制作万年历
  3. 电源芯片使能管脚EN的6种玩法,助力设计稳定可靠的电源
  4. 读书百客:《嘲鲁儒》赏析
  5. MATLAB浮点数详解
  6. 【实用工具01】免费的比较工具Meld
  7. 《SolidWorks 2014中文版机械设计从入门到精通》——2.5 尺寸标注
  8. 学术英语理工(第二版)Unit3课文翻译
  9. [日常] [Python] 批量将某个文件夹下的.ppt/.pptx/.pptm转换为.pdf文件,并且将其移入/ppt文件夹中
  10. 爱普生打印机无法正常工作的解决方法