IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> app调起支付宝-后端预支付 -> 正文阅读

[开发测试]app调起支付宝-后端预支付

前言

  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

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:28:40  更:2022-02-14 21:28:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:52:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码