支付宝 php sdk 5.2,laravel 5.5 接入蚂蚁金服官方 SDK(支付宝 APP 支付为例) 开发步骤...

laravel 5.5 接入蚂蚁金服官方 SDK(支付宝 APP 支付为例) 开发步骤

一, 创建应用及配置

首先需要到蚂蚁金服开放平台 (https://docs.open.alipay.com/) 注册应用, 获取应用 id(APP_ID), 并且配置应用, 主要是签约应用, 这个需要审核, 一般 2-5 个工作日, 审核通过后, 去生成公钥私钥这些东西, 具体步骤参考蚂蚁金服官方文档, 上面说明的比较清楚;

二, 下载对应 SDK

下载的是服务端 SDK, 注意不要下错, 下载地址: https://docs.open.alipay.com/54/103419/ ;

三, 准备好域名

这个一般都已经有了吧.

四, 接入 SDK

因为 SDK 不能用 composer 安装, 所以需要自定义 laravel 的第三方库.

具体的步骤:

1: 首先将下载下来的包解压后, 放到 laravel 可以自动加载的地方, 我放在 app/packages/alipay(packages 是自己新建的文件夹, 下载下来的包我重命名了 alipay), 结构如图:

ab7653affab982b574eb7acc55df2e04.gif

2: 在 composer.json 中的 autoload 下的 classmap 下加入 "app/Packages/alipay";

ab7653affab982b574eb7acc55df2e04.gif

3: 运行 composer dumpautoload 命令

ab7653affab982b574eb7acc55df2e04.gif

这样接入 SDK 算是完成了.

5. 具体使用案例

首先在 config/alipay.php 文件中, 配置好相关参数, 具体如图:

ab7653affab982b574eb7acc55df2e04.gif

然后我直接在 AopSdk.php 的同名目录新建了一个 Alipay.php

ab7653affab982b574eb7acc55df2e04.gif

文件中简单写了一个生产 APP 支付订单信息的方法<?php

/**

* Created by PhpStorm.

* User: 寞小陌

* Date: 2018/4/18

* Time: 9:49

*/

namespaceapp\Packages\alipay;

useMockery\CountValidator\Exception;

require('AopSdk.php');

classAlipay

{

/**

* 生成 APP 支付订单信息

* @param string $orderId 商品订单号

* @param string $subject 支付商品的标题

* @param string $body 支付商品描述

* @param float $total_amount 商品总支付金额

* @param int $expire 支付过期时间, 分

* @return bool|string 返回支付宝签名后订单信息, 否则返回 false

*/

publicfunctiongenerateOrder($orderId,$subject,$body,$total_amount,$expire){

try{

$aop=new\AopClient();

$aop->gatewayUrl=config('alipay.gatewayUrl');

$aop->appId=config('alipay.app_id');

$aop->rsaPrivateKey=config('alipay.private_key');

$aop->alipayrsaPublicKey=config('alipay.public_key');

$aop->format='json';// 固定

$aop->charset=config('alipay.charset');

$aop->signType=config('alipay.sign_type');

$request=new\AlipayTradeAppPayRequest();

//SDK 已经封装掉了公共参数, 这里只需要传入业务参数

$bizcontent="{\"body\":\"{$body}\","// 支付商品描述

."\"subject\":\"{$subject}\","// 支付商品的标题

."\"out_trade_no\":\"{$orderId}\","// 商户网站唯一订单号

."\"timeout_express\":\"{$expire}m\","// 该笔订单允许的最晚付款时间, 逾期将关闭交易. 取值范围: 1m~15d.m - 分钟, h - 小时, d - 天, 1c - 当天(1c - 当天的情况下, 无论交易何时创建, 都在 0 点关闭). 该参数数值不接受小数点, 如 1.5h, 可转换为 90m.

// 注: 若为空, 则默认为 15d.

."\"total_amount\":\"{$total_amount}\","// 订单总金额, 单位为元, 精确到小数点后两位, 取值范围[0.01,100000000]

."\"product_code\":\"QUICK_MSECURITY_PAY\""."}";

$request->setNotifyUrl(config('alipay.notify_url'));

$request->setBizContent($bizcontent);

// 这里和普通的接口调用不同, 使用的是 sdkExecute

$response=$aop->sdkExecute($request);

//htmlspecialchars 是为了输出到页面时防止被浏览器将关键参数 html 转义, 实际打印到日志以及 http 传输不会有这个问题

returnhtmlspecialchars($response);// 就是 orderString 可以直接给客户端请求, 无需再做处理.

}catch(Exception$e){

// 失败返回 false

returnfalse;

}

}

}

注意: 一定要引入 SDK 的入口文件 AopSdk.php,require ('AopSdk.php');

否则会报 AopClient Not Found 这类的错误信息;

注意:$aop = new \AopClient(); 这里有个 "\".

至此, 支付宝的 SDK 就可以用了, 还有许多其他的业务比如退款, 对账等功能, 参考其官方文档就好, 迈出了第一步, 接下来的路就好走多了.

来源: https://www.cnblogs.com/x-x-j/p/8875636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值