一 : 下载第三方插件
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)