php tp5支付宝app支付,支付宝APP支付 统一下单 php服务端 tp5
{
$data = input(‘post.‘);
Loader::import(‘/alipay/aop/AopClient‘,EXTEND_PATH);
$aop = new \AopClient();
$aop->appId = config("alipay_app_id");
$aop->rsaPrivateKey = config(‘alipay_private_key‘);
$aop->alipayrsaPublicKey = config(‘alipay_public_key‘);//对应填写
$aop->signType = "RSA2";
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
Loader::import(‘/alipay/aop/request/AlipayTradeAppPayRequest‘,EXTEND_PATH);
$request = new \AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数
$bizcontent = json_encode(array(
‘body‘ => $data[‘body‘], //商品描述
‘subject‘ => $data[‘title‘], //支付的标题,
‘out_trade_no‘ => $data[‘ordernum‘], //支付宝订单号必须是唯一的,只能生成一次
‘total_amount‘ => $data[‘money‘], //金额
"timeout_express" => "30m", //订单支付有效时间 m分钟 h小时
‘product_code‘ => ‘QUICK_MSECURITY_PAY‘
));
$request->setNotifyUrl("http://tapi.zuozuobang.com/notifyurl");//你在应用那里设置的异步回调地址
$request->setBizContent($bizcontent);
//这里和普通的接口调用不同,使用的是sdkExecute
$response = $aop->sdkExecute($request);
//htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
/* echo htmlspecialchars($response);*///就是orderString 可以直接给客户端请求,无需再做处理。
if($response){
return_msg(‘200‘,‘支付宝请求成功!‘,$response);
}else{
return_msg(‘100‘,‘支付请求失败!‘,$response);
}
}
/*
* 支付宝支付回调
*/
public function notifyurl()
{
Loader::import(‘/alipay/aop/AopClient‘,EXTEND_PATH);
$aop = new \AopClient();
$aop->alipayrsaPublicKey =config(‘alipay_public_key‘);//对应填写
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
if ($flag) {
//校验通知数据的正确性
$out_trade_no = $_POST[‘out_trade_no‘]; //商户订单号
$trade_no = $_POST[‘trade_no‘]; //支付宝交易号
$trade_status = $_POST[‘trade_status‘]; //交易状态trade_status
$total_amount = $_POST[‘total_amount‘]; //订单的实际金额
$order = Db::table("shfw_order")->where(‘ordernum‘, $out_trade_no)->find();
if ($order) {
//只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功。
if ($trade_status != ‘TRADE_FINISHED‘ && $trade_status != ‘TRADE_SUCCESS‘) {
return ‘fail‘;
}
//2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);
if ($total_amount != $order[‘money‘]) {
return ‘fail‘;
}
//校验成功后在response中返回success,校验失败返回failure
$update = array(
‘status‘ => ‘2‘, //修改支付状态
‘zhi_time‘ => time(), //添加支付时间
‘pay_type‘ => 1); //添加支付类型
$result = Db::table("shfw_order")->where(‘ordernum‘, $out_trade_no)->update($update);
$res = Db::table("shfw_order")->where(‘ordernum‘, $out_trade_no)->field(‘id,mid,ordernum,nickname,addtime,pay_type‘)->find();
// $member = Db::table(‘shfw_member‘)->where(‘id‘,$res[‘mid‘])->find();
//添加充值记录
$res[‘payorder‘] = $trade_no;
$res[‘money‘] = $total_amount;
$addpay = $this->addpay($res);
if ($result && $addpay) {
return "success";
} else {
return ‘fail‘;
}
} else {
exit(‘fail‘);
}
}
}
php tp5支付宝app支付,支付宝APP支付 统一下单 php服务端 tp5相关推荐
- 支付宝APP支付 统一下单 php服务端 tp5
/*支付宝第三方支付 * *生成APP支付订单信息 * @param number uid 用户id * @param string token 用户token * @param number oid ...
- 支付宝 统一支付 php,支付宝APP支付 统一下单 php服务端 tp5
{ $data = input('post.'); Loader::import('/alipay/aop/AopClient',EXTEND_PATH); $aop = new \AopClient ...
- 微信支付报错:统一下单和拉起支付的appid不一致(原创)
微信支付报错:统一下单和拉起支付的appid不一致 错误码:-2 提示参考: 参考统一下单的API (谦信君原创,转载请注明来源) 原因排查: 我们做的是APP微信支付 客户端向我服务端发请求,获取预 ...
- 微信支付常见错误和统一下单错误码详情
微信支付常见错误和统一下单错误码详情 微信支付常见问题描述及解决方法 微信调用统一下单接口,当result_code=FAIL时,错误代码及错误描述 参考链接: 微信支付常见问题描述及解决方法 序号 ...
- 微信统一下单 java_微信支付(java版本)_统一下单
最近工作接触到微信支付,刚开始解决微信支付很神秘,接触之后发现并没有那么神秘,就是有很多坑,在开发的时候需要注意,整理出来: 1.准备工作 首先需要登录微信支付公众平台阅读接口文档,地址:https: ...
- Android客户端之“微服私访”App的系统学习(一) 本地服务端环境的搭建和部署
前言: 每晚睡觉前都会去看看微信公众号中来自各位大神的干货分享,偶然看到鸿洋大神推荐的一篇有关课工厂的一个公开课 高效Android工程师6周培养计划,根据学习内容,整理成笔记.本系列文章意在详细介绍 ...
- 支付宝app支付功能-服务端的实现-python3版
支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...
- vue 微信公众号支付接口_基于vue的h5项目之支付宝支付与微信支付
本文仅记录基于vue开发h5项目过程中使用支付宝和微信支付过程中的重点与槽点,仅为前端部分,如有疏漏不正之处,请于文末评论探讨.注意:标红部分灰常重要,仔细阅读官方文档非常重要,耐心非常重要,细心非常 ...
- android 支付模块封装,Android集成支付----支付宝支付总结与封装
前言 类似于Android集成支付----微信支付总结与封装(可以查看本人另外一篇文章),本文对支付宝支付进行一个总结与封装.相比于微信支付,支付宝支付没有那么多坑. 集成支付宝支付SDK 这里只是简 ...
最新文章
- 文件及文件组备份与还原示例.sql
- webpack4导入全局sass文件
- windows 编译xvidcore-1.1.3.tar
- 高等数学-空间解析几何与向量代数
- 万兆交换机用什么网线_现在国内没有万兆宽带,那为什么有万兆网线呢?
- STM32f401驱动【语音模块】
- 用BVP一比一还原自如客APP裸眼3D效果(Android原生)
- 数据错误(循环冗余检查) 各种解决方法
- 因果推断what if
- [C#] 控制系统音量-第二章
- idea编辑区左侧行号背景颜色修改
- 卤化铅钙钛矿量子点(LHP-QDs)/N719染料敏化太阳能电池
- js实现任意节日倒计时html
- windows系统搜索本地文件缓慢怎么办?
- Python 汉字转化成拼音
- iOS地图定位导航与大头针的简单使用
- 【人工智能毕设之基于Python+flask+bilstm的评论情感分析系统-哔哩哔哩】 https://b23.tv/QU56eTl
- 2022预推免上岸北京大学计算机学院,我的一些保研经验
- 操作系统学习笔记——北京大学陈向群老师课后及习题答案(5)
- 腾讯云运维考试题及答案