在网上没有找到支付宝easysdk接口的对接详细说明,自己一步一步的摸索,其中使用chatgpt的帮助作用不少。
根据官方给的文档
需要执行composer require alipaysdk/easysdk:^2.0安装sdk。如果你的项目已经安装过其它扩展,可以先把vendor文件夹备份一份,我用的是laravel框架,先问问chatgpt一般应该在那个文件下执行这个命令:
执行以后报错:
PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() in phar:///www/server/php/74/bin/composer/vendor/composer/xdebug-handler/src/Process.php:93
Stack trace:
#0 phar:///www/server/php/74/bin/composer/vendor/composer/xdebug-handler/src/Status.php(48): Composer\XdebugHandler\Process::setEnv()
#1 phar:///www/server/php/74/bin/composer/vendor/composer/xdebug-handler/src/XdebugHandler.php(83): Composer\XdebugHandler\Status->construct()
#2 phar:///www/server/php/74/bin/composer/bin/composer(16): Composer\XdebugHandler\XdebugHandler->construct()
#3 /www/server/php/74/bin/composer(24): require(‘…’) …
问chatgpt怎样解决:
重新执行安装命令又报错,报错和chatgpt回答如下:
宝塔上安装fileinfo扩展
其它的一些像似的报错就不贴在这里了,可以在这个地址查看。
sdk安装好后,把路由和控制器写好,控制器代码如下,其中写require '…/vendor/autoload.php’是因为我写在了自定义的一个目录,可以根据自己的情况来写。代码根据上面提到的官方文档的代码修改而来。
<?php
namespace App\Http\Controllers;
require '../vendor/autoload.php';
use Illuminate\Http\Request;
use Alipay\EasySDK\Kernel\Factory;
use Alipay\EasySDK\Kernel\Util\ResponseChecker;
use Alipay\EasySDK\Kernel\Config;
class AlipayController extends Controller
{
public function createPayment()
{
//1. 设置参数(全局只需设置一次)
Factory::setOptions($this->getOptions());
try {
//2. 发起API调用(以支付能力下的统一收单交易创建接口为例)
$result = Factory::payment()->common()->create("iPhone6 16G", "20230526235526001", "88.88", "2088102170439210");
$responseChecker = new ResponseChecker();
//3. 处理响应或异常
if ($responseChecker->success($result)) {
// $payUrl = $result->qrCode;
// header("Location: {$payUrl}");
$body = $result->body;
//通过打印返回信息,跳转的支付宝支付页面
print($body);
echo "调用成功". PHP_EOL;
} else {
echo "调用失败,原因:". $result->msg.",".$result->subMsg.PHP_EOL;
}
} catch (Exception $e) {
echo "调用失败,". $e->getMessage(). PHP_EOL;;
}
}
function getOptions()
{
$options = new Config();
$options->protocol = 'https';
$options->gatewayHost = 'openapi-sandbox.dl.alipaydev.com';
$options->