sdk的引入

composer  require alipaysdk/easysdk

程序中的使用

首先引入需要的文件

use Alipay\EasySDK\Kernel\Config;
use Alipay\EasySDK\Kernel\Factory;
use Alipay\EasySDK\Kernel\Util\ResponseChecker;
public function base()
    {
        $options = new Config();
        $options->protocol = 'https';
        $options->gatewayHost = 'openapi.alipay.com';
        $options->appId =  $this->config['appid'];//应用ID
        $options->signType = 'RSA2';
        $options->alipayPublicKey  =   $this->config['public_key']; //支付宝公钥
        $options->merchantPrivateKey  = $this->config['private_key']; //支付宝私钥
        $options->notifyUrl = $this->config['notify_url']; //通知地址
        Factory::setOptions($options);
        try {
            //2. 发起API调用(以支付能力下的统一收单交易创建接口为例)
            //这里使用三段 表示 具体看手册 https://opendocs.alipay.com/open/54/103419/
            $result = Factory::payment()->common()
                ->optional("out_request_no", 'aaa_' . $this->msectime()) //out_request_no 是退款的商户自定义编号 不能重复 重复的话会导致后一次的失败
                ->refund('aaa-aaa', '0.01'); // refund的是退款的方法 还有其他方法可以参见手册  第一个参数为支付时的商户自定义订单号 第二个参数为需要退款的金额
            //这里查看 手册 https://github.com/alipay/alipay-easysdk/blob/master/APIDoc.md

            $responseChecker = new ResponseChecker();
            //3. 处理响应或异常
            if ($w = $responseChecker->success($result)) {
                //dump($w);
                //处理其他内容

                // return $result->body;
                echo "调用成功" . PHP_EOL;
            } else {
                echo "调用失败,原因:" . $result->msg . "," . $result->subMsg . PHP_EOL;
            }
        } catch (Exception $e) {
            echo "调用失败," . $e->getMessage() . PHP_EOL;;
        }
        // $this->ok(200, '成功', ['data' => $res]);
    }

根据输出的结果的不同就能知道退款的成功还是失败啦

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐