laravel 5.5访问蚂蚁金服官方SDK的开发步骤(以支付宝APP付款为例)

电脑杂谈  发布时间:2020-04-22 18:01:32  来源:网络整理

支付sdk_php 支付宝服务端sdk_sdk支付接口

首先,您需要将应用程序注册到Ant Financial Open Platform(open.alipay.com),获取应用程序ID(APP_ID),然后配置该应用程序,主要是合同规定的应用程序. 需要对此进行审核,一般需要2-5个工作日,审核通过后,生成公钥和私钥,具体步骤请参考蚂蚁金服的正式文件,上面的描述比较清晰;

服务器SDK已下载. 注意不要犯错. 下载地址: ;

通常已经在那里.

由于SDK无法与composer一起安装,因此您需要自定义laravel第三方库.

支付sdk_sdk支付接口_php 支付宝服务端sdk

1: 首先,解压缩下载的软件包并将其放在laravel可以自动加载的位置. 我将其放在app / packages / alipay中(packages是我创建的新文件夹,下载的报告重命名为alipay),其结构如下:

2: 在composer.json中自动加载下的类映射中添加“ app / Packages / alipay”;

支付sdk_sdk支付接口_php 支付宝服务端sdk

3: 运行composerdumpautoload命令

对SDK的访问已完成.

首先支付sdk,在config / alipay.php文件中配置相关参数,如图所示:

sdk支付接口_支付sdk_php 支付宝服务端sdk

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

文件仅编写了一种生成APP付款订单信息的方法

php 支付宝服务端sdk_sdk支付接口_支付sdk

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: 寞小陌
 5  * Date: 2018/4/18
 6  * Time: 9:49
 7  */
 8 
 9 namespace app\Packages\alipay;
10 use Mockery\CountValidator\Exception;
11 
12 require ('AopSdk.php');
13 
14 class Alipay
15 {
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  返回支付宝签名后订单信息,否则返回false
26      */
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,需要('AopSdk.php');

否则,将报告诸如未找到AopClient的错误消息;

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

目前支付sdk,可以使用支付宝的SDK,并且还有许多其他服务,例如退款,对帐和其他功能. 只需参考其官方文档即可. 迈出了第一步,下一步是好的. 也是.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-185015-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...