php支付sdk接入网站教程,laravel 5.5 接入蚂蚁金服官方SDK(支付宝APP支付为例)开发步骤...
一、创建应用及配置
首先需要到蚂蚁金服开放平台(open.alipay.com)注册应用,获取应用id(APP_ID),并且配置应用,主要是签约应用,这个需要审核,一般2-5个工作日,审核通过后,去生成公钥私钥这些东西,具体步骤参考蚂蚁金服官方文档,上面说明的比较清楚;
二、下载对应SDK
三、准备好域名
这个一般都已经有了吧。
四、接入SDK
因为SDK不能用composer安装,所以需要自定义laravel的第三方库。
具体的步骤:
1:首先将下载下来的包解压后,放到laravel可以自动加载的地方,我放在app/packages/alipay(packages是自己新建的文件夹,下载下来的报我重命名了alipay),结构如图:
2:在composer.json中的autoload下的classmap下加入"app/Packages/alipay";
3:运行composer dumpautoload 命令
这样接入SDK算是完成了。
5.具体使用案例
首先在config/alipay.php文件中,配置好相关参数,具体如图:
然后我直接在AopSdk.php的同名目录新建了一个Alipay.php
文件中简单写了一个生产APP支付订单信息的方法
1 <?php2 /**3 * Created by PhpStorm.4 * User: 寞小陌5 * Date: 2018/4/186 * Time: 9:497 */
8
9 namespace app\Packages\alipay;10 use Mockery\CountValidator\Exception;11
12 require ('AopSdk.php');13
14 classAlipay15 {16
17
18 /**19 * 生成APP支付订单信息20 * @param string $orderId 商品订单号21 * @param string $subject 支付商品的标题22 * @param string $body 支付商品描述23 * @param float $total_amount 商品总支付金额24 * @param int $expire 支付过期时间,分25 * @return bool|string 返回支付宝签名后订单信息,否则返回false26 */
27 public function generateOrder($orderId, $subject, $body, $total_amount, $expire){28 try{29 $aop = new\AopClient();30 $aop->gatewayUrl = config('alipay.gatewayUrl');31 $aop->appId = config('alipay.app_id');32 $aop->rsaPrivateKey = config('alipay.private_key');33 $aop->alipayrsaPublicKey = config('alipay.public_key');34 $aop->format= 'json';//固定
35 $aop->charset = config('alipay.charset');36 $aop->signType = config('alipay.sign_type');37 $request = new\AlipayTradeAppPayRequest();38 //SDK已经封装掉了公共参数,这里只需要传入业务参数
39 $bizcontent = "{\"body\":\"{$body}\"," //支付商品描述
40 . "\"subject\":\"{$subject}\"," //支付商品的标题
41 . "\"out_trade_no\":\"{$orderId}\"," //商户网站唯一订单号
42 . "\"timeout_express\":\"{$expire}m\"," //该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。43 //注:若为空,则默认为15d。
44 . "\"total_amount\":\"{$total_amount}\"," //订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
45 . "\"product_code\":\"QUICK_MSECURITY_PAY\""
46 . "}";47 $request->setNotifyUrl(config('alipay.notify_url'));48 $request->setBizContent($bizcontent);49 //这里和普通的接口调用不同,使用的是sdkExecute
50 $response = $aop->sdkExecute($request);51 //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
52 return htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。
53 }catch(Exception $e){54 //失败返回false
55 return false;56 }57 }58 }
注意:一定要引入SDK的入口文件AopSdk.php,require ('AopSdk.php');
否则会报AopClient Not Found这类的错误信息;
注意:$aop = new \AopClient();这里有个“\”。
至此,支付宝的SDK就可以用了,还有许多其他的业务比如退款,对账等功能,参考其官方文档就好,迈出了第一步,接下来的路就好走多了。
php支付sdk接入网站教程,laravel 5.5 接入蚂蚁金服官方SDK(支付宝APP支付为例)开发步骤...相关推荐
- Java教程张孝祥百度云,蚂蚁金服5面
开始进入正题,说下你对线程安全的理解(多线程访问同一个对象,如果不需要考虑额外的同步,调用对象的行为就可以获得正确的结果就是线程安全) 事务有哪些特性?(ACID) 怎么理解原子性?(同一个事务下,多 ...
- 支付宝app支付功能-服务端的实现-python3版
支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...
- 蚂蚁金服:AlipayHK上线跨境线下支付新功能
[TechWeb]3月3日消息,据"蚂蚁金服"官方微信号发布的消息显示,本月起,港版"支付宝"AlipayHK上线跨境线下支付新功能,率先覆盖大湾区和日本.据悉 ...
- Node.js接入支付宝(蚂蚁金服)支付
最近项目(Android和Ios)中需要接入付费功能(支付宝和微信),下面就先来介绍下接入支付宝的流程.文章主要分为三大块: 第一块是如何在蚂蚁金服的开放平台创建一个应用并且配置开发选项. 第二块是n ...
- 这样可以几分钟快速对接支付宝APP支付和手机网站支付
这个接口主要是实现企业支付宝APP支付已经签约完成的,想对接到手机网站实现手机网站支付来用的. 如果对接到PC网站,用户支付的时候就是扫码支付,网站出付款码,用户扫码完成支付. 如果对接到APP平台, ...
- 可以几分钟快速对接支付宝APP支付和手机网站支付?
这个接口主要是实现企业支付宝APP支付已经签约完成的,想对接到手机网站实现手机网站支付来用的. 如果对接到PC网站,用户支付的时候就是扫码支付,网站出付款码,用户扫码完成支付. 如果对接到APP平台, ...
- 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)
java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写 一.流程步骤 1.执行流程 当手机端app(就是你公司开发的app) ...
- 支付宝App支付全解析
简单介绍了支付宝App支付的申请.接入.使用.确认支付结果等相关流程 0 系列文章 系列一 微信App支付全解析 系列二 支付宝App支付全解析 系列三 微信公众号支付全解析 系列四 微信扫码支付全解 ...
- 支付宝APP支付(基于Java实现支付宝APP支付)
贴一下支付核心代码,以供后续参考: 业务层 import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; ...
- aliPay支付宝APP支付操作流程
[TOC] aliPay支付宝APP支付操作流程 1 注册帐号&官方文档解析 在支付宝商家中心注册帐号,已经拥有支付宝帐号的用户,直接登录商家中心即可(同一个支付宝帐号,可以既是买家也是商家) ...
最新文章
- 【收藏】基于QGIS的Google Earth Engine插件已发布
- 什么叫POE交换机?POE交换机使用方法介绍?
- AI+药物研发:人工智能赋能新药研发(人工智能应用案例)
- HUE 打开 WorkFlow异常 Operation category READ is not supported in state standby
- 《ArcGIS Runtime SDK for Android开发笔记》——(12)、自定义方式加载Bundle格式缓存数据...
- 怎么看铜皮属性_阻抗匹配怎么做 及阻抗匹配的作用。
- java连接mongo_java 连接mongodb
- 数据分析之 pandas
- 【优化算法】差分蜂群优化算法(DEABC)【含Matlab源码 1230期】
- 单片机蜂鸣器音乐c语言程序,51单片机 使用蜂鸣器播放简单音乐
- mysql类型float_Mysql数据类型---FLOAT
- 垃圾回收器CMS和G1
- 分享你喜欢的杀毒软件
- mac仿win快捷键方案
- Windows11 dev 回退到beta
- 【微信开发】基于微信公众号的早起签到程序
- 亿级流量电商详情页系统设计与实战-小型电商架构VS大型电商架构
- NFC手机识别身份证的技术实现思路
- 大电流dcdc降压芯片20a_一种高效率大电流的DC-DC降压电源设计
- 使用GitHubDesktop 和 WinMerge 管理代码解决冲突
热门文章
- 通过QQ 2012 客户端协议获取clientkey的0x91数据包分析
- 蓝桥杯 等差素数列(python实现)
- 计算机还原取消,如何取消开机一键还原F11选项?
- SQL Server 2000升级sp4补丁的时候出现“以前进行的程序安装创建了挂起的文件操作”的错误!...
- 加工中心宏程序c语言,加工中心最实用的宏程序
- 全面分析游戏限制多开原理
- IR2103H桥驱动电路
- c语言人机大战五子棋,五子棋人机大战将打响 祁观将与AI弈心五番棋对决
- Raptor码(一):2007RFC5053标准编解码学习
- 使用CNN实现C-MAPSS数据集里面的剩余寿命预测(Pytorch)