一 : 下载第三方插件
composer require yansongda/pay:^2.10 -vvv
二 : 使用命令行新建控制器
php artisan make:controller Api/PayController
三 : 控制器内头部需要调用的类
use YansongdaPayPay; use YansongdaPayLog;
四 : 更改私有的配置文件
下面的配置代码中只需要更改app_id、notify_url、return_url、ali_public_key、private_key即可
protected $config = [
'app_id' => '',
'notify_url' => 'http://127.0.0.1/laravle8/public/api/pay/notify', //将网址改成你的路由
'return_url' => 'http://127.0.0.1/laravle8/public/api/pay/return', //网站就是你自己域名
'ali_public_key' => '',
// 加密方式: **RSA2**
'private_key' => '',
'log' => [ // optional
'file' => './logs/alipay.log',
'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug
'type' => 'single', // optional, 可选 daily.
'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
],
'http' => [ // optional
'timeout' => 5.0,
'connect_timeout' => 5.0,
// 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
],
'mode' => 'dev', // optional,设置此参数,将进入沙箱模式
];
1:可以根据支付宝沙箱这个链接中获取APPID
2:回调路由根据自己所需更改即可
3:应用公钥和应用私钥
应用公钥就是支付宝公钥:
应用私钥:
五 : 支付
public function index(Request $request)
{
//接收订单id
$id = $request->get('id');
//查询订单数据
$order = ApiOrder::where('id',$id)->get()->toArray();
//查询商品数据
$goods = ApiGoods::where('id',$order[0]['gid'])->get()->toArray();
//组装支付信息
$order = [
'out_trade_no' => $order[0]['name'],//订单号
'total_amount' => $order[0]['total_price'],//价格
'subject' => $goods[0]['name'],//描述 可以为商品名称
];
//支付
$alipay = Pay::alipay($this->config)->web($order);
return $alipay;//
}
六 : 修改订单表的状态
public function return()
{
//验签
$data = Pay::alipay($this->config)->verify(); // 是的,验签就这么简单!
//获取订单信息
$order = ApiOrder::where('name',$data->out_trade_no)->get()->toArray();
//组装订单表数据
$data = [
'name' => $order[0]['name'],
'gid' => $order[0]['gid'],
'status' => 1,
'uid' => $order[0]['uid'],
'total_price' => $order[0]['total_price']
];
//返回
ApiOrder::where('name',$data['name'])->update($data);
return ['code' => 200,'msg' => '支付成功','data' => ''];
}
七 : 后台,无需更改
public function notify()
{
//支付成功后会走到这个方法里面
$alipay = Pay::alipay($this->config);
try{
$data = $alipay->verify(); // 是的,验签就这么简单!
Log::debug('Alipay notify', $data->all());
} catch (Exception $e) {
// $e->getMessage();
}
return $alipay->success()->send();
}
八 :在小程序端的页面中使用web-view进行支付操作
支付
END



