安装
composer require yansongda/pay -vvv
代码
<php>
use Yansongda\Pay\Pay;
use Yansongda\Pay\Log;
class PayController
{
protected $config = [
'app_id' => '2016082000295641',
'notify_url' => 'http://yansongda.cn/notify.php',
//'return_url' => 'http://yansongda.cn/return.php',
'ali_public_key' => 'MIIBBAQEQAB',
// 加密方式: **RSA2**
'private_key' => 'MIIEpAIBAAKCGH5z15yIEAQ==',
'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,设置此参数,将进入沙箱模式
];
public function index()
{
$order = [
'out_trade_no' => time(),//订单号
'total_amount' => '1',
'subject' => 'test subject - 测试',
];
//在这里可以配置支付成功之后的跳转地址,
$this->config['return_url'] = news?id=out_trade_no;
$alipay = Pay::alipay($this->config)->web($order);
return $alipay->send();// laravel 框架中请直接 `return $alipay`
return $this->success($result->getContent());//如果在vue 或者h5中 需要给前端传html字符串
//app支付用下面的方法 直接给安卓签名
$key = Pay::alipay($this->config)->app($order);
return $this->success(['payment'=>$payment,'key'=>$key->getContent()]); //app支付
}
//ali——pay回调方法
public function notify()
{
$alipay = Pay::alipay($this->config);
try{
$data = $alipay->verify(); // 是的,验签就这么简单!
$trade_status = $data['trade_status'];
$order_no = $data['out_trade_no'];
$amount = $data['invoice_amount'];
$trade_no = $data['trade_no'];
if ($trade_status == 'TRADE_SUCCESS' || $trade_status == 'TRADE_FINISHED') {
//订单修改状态
}
Log::debug('Alipay notify', $data->all());
} catch (\Exception $e) {
// $e->getMessage();
}
return $alipay->success()->send();// laravel 框架中请直接 `return $alipay->success()`
}
}