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),结构如图:

74f948042951b42ee844a7b04e8c7933.png

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

af9723f2049b67de024f50f789c79adc.png

3:运行composer dumpautoload 命令

66cf9cabbfcbbe6eace4779ff46c6cee.png

这样接入SDK算是完成了。

5.具体使用案例

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

eb887c52744ea17e4cf7d0471d0a1051.png

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

2c9e76cfb0e0b422225ca5fd0bcb3b2a.png

文件中简单写了一个生产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就可以用了,还有许多其他的业务比如退款,对账等功能,参考其官方文档就好,迈出了第一步,接下来的路就好走多了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值