reezy/alipaysdk

reezy alipaysdk

v0.4.0 2020-10-11 11:53 UTC

This package is auto-updated.

Last update: 2024-05-11 21:30:23 UTC


README

一个简单易用的支付宝开放平台服务端SDK,提供基本的支付宝API调用能力。

安装依赖

composer require reezy/alipaysdk

使用

创建SDK实例


// 创建 AlipaySdk 实例
$sdk = AlipaySdk::create($appId, $appSecret);
// 使用证书
$sdk->useCerts($appCertPath, $rootCertPath, $alipayCertPath); 

支付宝接口,响应一般有以下几种形式,这里做了兼容处理

  • {error_response: {}, ...} ,返回 error_response
  • {a_b_c_d_response: {}, ...},返回 a_b_c_d_response
  • {...} 直接返回
$resp = $sdk->execute('alipay.system.oauth.token', [
    'grant_type' => 'authorization_code',
    'code' => $code,
]);


$resp = $sdk->execute('alipay.user.info.share', [
    'auth_token' => $this->accessToken,
]);
if ($resp['code'] == 10000) {
    // ...
}

实例配置

<?php 
return [
    'default' => [
        // 应用ID,例如:2019051064521003
        'app_id'  => env('ALIPAY_APP_ID'),
        // 应用私钥,例如:MIIEvQIBADANB ...
        'app_secret'  => env('ALIPAY_APP_SECRET'),


        // 应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt
        'app_cert_path'  => env('ALIPAY_APP_CERT_PATH'),
        // 支付宝根证书文件路径,例如:/foo/alipayRootCert.crt
        'root_cert_path'  => env('ALIPAY_ROOT_CERT_PATH'),
        // 支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt
        'alipay_cert_path'  => env('ALIPAY_ALIPAY_CERT_PATH'),


        // 支付宝公钥,例如:MIIBIjANBg...
        // 注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
        'alipay_public_key'  => env('ALIPAY_ALIPAY_PUBLIC_KEY'),

        // 可选,商户ID
        'merchant_id'  => env('ALIPAY_MERCHANT_ID'),

        // 可选,可设置AES密钥,调用AES加解密相关接口时需要,例如:aa4BtZ4tspm2wnXLb1ThQA==
        'encrypt_key' => env('ALIPAY_ENCRYPT_KEY'),

        // 可选,可设置异步通知接收服务地址,例如:https://www.test.com/callback
        'notify_url' => env('ALIPAY_NOTIFY_URL'),
    ],
];

通过工厂获取SDK实例

$factory = new AlipaySdkFactory();
$sdk = $factory->get('default');

在Hyperf中获取默认实例

$sdk = ApplicationContext::getContainer()->get(AlipaySdkFactoryInterface::class)->get();

获取支付宝用户信息

$client = ApplicationContext::getContainer()->get(AlipaySdkFactoryInterface::class)->get()->oauth($authCode);

$info = $client->getUserInfo();

参考

https://github.com/alipay/alipay-easysdk/tree/master/php

LICENSE

The Component is open-sourced software licensed under the Apache license.