工作环境,支付宝账号是公司的,app应用和秘钥配置都是我自己申请的,这其中的流程暂且跳过。

一、准备工作

appid、应用私钥、应用公钥、支付宝公钥

二、配置文件

'alipay'=>['appId'             => '20180300000000','gatewayUrl'        => 'https://openapi.alipay.com/gateway.do','rsaPrivateKey'     => '应用私钥','rsaPublicKey'      => '应用公钥','alipayrsaPublicKey'=> '支付宝公钥','seller'            => '支付宝邮箱',//可不要'format'            => 'json','charset'           => 'UTF-8','signType'          => 'RSA2','transport'         => 'http',],

二、下载官方的SDK包,放在extend下,如图

三、创建支付方法

(一)创建支付类

<?php
namespace app\index\controller;
use think\Config;class Alipay
{/** 支付宝支付* $body            名称* $total_amount    价格* $product_code    订单号* $notify_url      异步回调地址*/public function alipay($body, $total_amount, $product_code, $notify_url){/*** 调用支付宝接口。*/import('.Alipay.aop.AopClient', '', '.php');import('.Alipay.aop.request.AlipayTradeAppPayRequest', '', '.php');$aop = new \AopClient();$aop->gatewayUrl            = Config::get('alipay')['gatewayUrl'];$aop->appId                 = Config::get('alipay')['appId'];$aop->rsaPrivateKey         = Config::get('alipay')['rsaPrivateKey'];$aop->format                = Config::get('alipay')['format'];$aop->charset               = Config::get('alipay')['charset'];$aop->signType              = Config::get('alipay')['signType'];$aop->alipayrsaPublicKey    = Config::get('alipay')['alipayrsaPublicKey'];$request = new \AlipayTradeAppPayRequest();$arr['body']                = $body;$arr['subject']             = $body;$arr['out_trade_no']        = $product_code;$arr['timeout_express']     = '30m';$arr['total_amount']        = floatval($total_amount);$arr['product_code']        = 'QUICK_MSECURITY_PAY';$json = json_encode($arr);$request->setNotifyUrl($notify_url);$request->setBizContent($json);$response = $aop->sdkExecute($request);return $response;}}

(二)创建支付方法

namespace app\index\controller;use think\Config;
use think\Request;class Payment extends Common
{//测试服务器private     $domain = 'http://xxxx.com';public function __construct(Request $request = null){parent::__construct($request);}public function payOrder(){//获取订单号$where['id'] = input('post.orderid');//查询订单信息$order_info = db('order')->where($where)->find();$reoderSn = $order_info['ordersn'];//获取支付方式$pay_type = input('post.paytype');//微信支付 或者支付宝支付//获取支付金额$money = 0.01;//$order_info['realprice'];//判断支付方式if ($pay_type == 'alipay') {$type['paytype'] = 1;db('order')->where($where)->update($type);$alipay = new Alipay();//异步回调地址$url = $this->url_translation_address('/index/payment/alipay_notify');$array = $alipay ->alipay(Config::get('company'), $money, $reoderSn, $url);if ($array) {return $this->response($array, 1, '成功');} else {return $this->response('', 0, '对不起请检查相关参数');}}if ($pay_type == 'wechat') {$type['paytype'] = 2;}}/** 支付宝支付回调修改订单状态*/public function alipay_notify(){//原始订单号$out_trade_no = input('out_trade_no');//支付宝交易号$trade_no = input('trade_no');//交易状态$trade_status = input('trade_status');if ($trade_status == 'TRADE_FINISHED' || $trade_status == 'TRADE_SUCCESS') {$condition['ordersn'] = $out_trade_no;$data['status'] = 2;$data['third_ordersn'] = $trade_no;$result=db('order')->where($condition)->update($data);//修改订单状态,支付宝单号到数据库if($result){echo 'success';}else{echo 'fail';}}else{echo "fail";}}//相对地址转绝对地址protected function url_translation_address($url){return $this->domain . $url;}}

四、接下来,安卓或者iOS 对接成功后,就可以进行测试了。如果出现回调地址没有响应或者出现其他问题,可在开放  平台联调日志排查  中查看支付宝的报头响应信息

地址  https://openmonitor.alipay.com/acceptance/cloudparse.htm

ThinkPHP5.0+APP+支付宝支付 服务端开发相关推荐

  1. 微信app支付服务端开发记录

    微信APP支付服务端 调用接口需要注意事项: 1.签名:需要全部参数参加签名,空值去掉.(实际传递了什么参数需要,就根据实际参数进行签名) 2.签名参数:appid是申请支付功能的app对于的ID,k ...

  2. java版app微信支付服务端代码【手机app微信支付】

    老早就像做支付模块的东西,因为觉得很高大上,很早就开始把微信支付模块的重心签名给做好了,一直就缺个商家的key,现在有幸来电商公司,哈哈,果然一切很顺利,能够很给力地App端提供支持: 个人觉得核心部 ...

  3. 微信支付java服务端开发(APP)

    我这边是针对微信商户支付功能开发.其他的未涉及到. 当你所有的准备工作准备好后:微信支付申请成功,api_key 配置好,等等一系列. 那么让我们进入java开发吧. 微信支付demo下载: http ...

  4. 微信APP支付服务端和Android 端详解及其demo

    最近在开发APP微信支付和支付宝支付,Android 端和后端都是我自己开发的,发现两家公司的文档都不是很友好,特别是微信,接触过或者开发过的人都应该有所体会.因此我特意把开发的过程梳理了,做下记录, ...

  5. node egg APP支付宝支付

    1.首先安装 npm包 npm install alipay-sdk 2.使用 const AlipaySdk = require('alipay-sdk').default const aliUti ...

  6. 基于spring-boot+uni-app实现app支付功能(微信/支付宝)服务端

    基于spring-boot+uni-app实现app支付功能(微信/支付宝)服务端 支付宝支付 1 准备工作 申请支付能力 接口加签方式 2代码 依赖 支付宝支付配置类 支付宝控制层 异步通知 微信支 ...

  7. PHP 实现支付宝APP 支付 (服务端 + 客户端 + 异步)

    目录 一.使用实例 二.服务端 1.下载SDK 2.业务层 3.业务层返回实例 推荐使用联调工具: 4.回调层 三.客户端 总结 一.使用实例 官方信息: 二.服务端 1.下载SDK App 支付服务 ...

  8. java 支付宝服务端,支付宝app支付服务端的实现-Java版

    前言 最近在工作中需要使用支付宝app支付,在初次使用过程中也不可避免的出现了一些问题,那么本次随笔主要是概述支付宝app支付服务端的整个实现过程以及就服务端出现的一些问题做一些总结. 1.准备工作 ...

  9. 微信APP支付服务端demo

    1.创建应用(获取appid) 要开发APP微信支付,需要在微信开放平台(http://open.weixin.qq.com)上创建应用以获得应用id.微信有几个平台,一定要搞清楚,否则开发过程会觉得 ...

最新文章

  1. VS2013 编译程序时提示 无法查找或打开 PDB 文件
  2. springboot:banner.txt
  3. Indy10收发Hotmail邮件
  4. 经验分享:三步走教你升级企业NAS设备
  5. sql 两个 in_SQL基础知识——IN运算符
  6. java aio socket_java核心学习(三十三) 网络编程---AIO实现异步Socket通信
  7. 剑指offer-JZ30 包含min函数的栈(C++,附自己的分析)
  8. 几个简单的OpenCV程序
  9. mouseover和mouseenter的区别
  10. android背景差分法,基于android平台的视频运动目标检测系统.pdf
  11. 开启智慧新生活 新余市智慧城市建设全省率先
  12. hdu 1005 矩阵快速幂
  13. 教你快速将多个TXT文档合并成一个
  14. Oracle VM VirtualBox 使用教程,说实话也就那样吧
  15. Golang 标准库 tips之waitgroup详解
  16. 日更第17天:Linux常用命令之ps用法
  17. layui上传图片插件
  18. oracle cmd命令导入,oracle使用cmd命令导入数据库
  19. 京东金融-供应链金融业务介绍
  20. 老子《道德经》第六十三章

热门文章

  1. 怎样把PDF文件转换成JPG格式保存
  2. [软件工程基础]结对项目——地铁
  3. 写字楼租金,2020年之后会呈现十分惊人的跳升
  4. 最优化基础理论和知识——1.21.3一部分
  5. 销售需求丨购物篮分析
  6. 攻防世界(misc)---pdf
  7. 画交叉验证的ROC曲线,多个样本不同的ROC重叠。
  8. 机器视觉按需求选择工业相机的方法
  9. 2021金山前端实习生笔试
  10. 2021年俄罗斯与中国双边货物进出口额及分布:中俄双边进出口额增长,贸易逆差下降,矿物产品占比最大[图]