'2021003143625682', 'private_key' => 'MIIEpQIBAAKCAQEAv2ARMdNmQgJro35VUkoyxE7meNJm30xQz/6ZC/LhSgnmt0/104nLwFpMdXqwGwt0Qw227NUuyrTQMjvfBB/CkHLY2ZfR5OB1M9ed+Gam0cOJ23VVYsZuegHRrCE+/qSymq2DMYXMnHSplWT168ChtTzODsHK/EvHAep2T/UKeQk97X3ZMuNbH5FuKOohpEMfBZJ6gQV0CObD6bKLSjhUuYyrvx1AhFd4VZ01iYoAwtEntj9GTYY8xkHM3YTrce24QfXZbNOO/WkcNzoc04St2W1ROPgFpV7KoTPvuAANE6Z+hLmlpPn4Wvw6WLOcM9dYEs8ihswrVApr46xRhKF5lQIDAQABAoIBAC0i2ktXIboV2g9Af50d9OVJ+p+qeCrYVAMKeExSJ4KP3UOE72TKDi063ueiXSCzzeL2vBsVmKikhqoiZtIRL5FkFPMVFKMXsWzdwNtSUqwMo1oITXAzfuD1xt8DJFlovNswa03l0cFg3pJmsn28/CbDxZHDcT2aHcC87NSk5ahv9XHytCjMBu5Z2TgxjiWLm8g9RzERNeKd7QTmugBohDRDp7Bdvn6JYLHMIJ8h8zWTKDJ7lQKt3NnHNOjHknFubq8gNElteo9VHy0jqa4j6sS8Rmo0cVlKYODuA8VVEGwM2kYEvGuo13Ts/6WzCiF7MeRr6C2SUnnVTDpUb9rk8G0CgYEA+QAQjTax9i6ay/Efl0bCvDpzsxAd/WFBI+lNNT3zbcXOdSmjGTtfLULKFI4qh/uzUmEmzwX+dUsxFdILCSzl3i+J0V6Ih4Sfe/ShMKDl8OLYt/xgx1mKLdnRxRi4j7jSYt5OyKteodSMktmx38Qlwg51+E60ncuGte3IfM86NnsCgYEAxMFNmGCwQ6lrPN+3wOLMEbVB3fFzy3SfUiVmVNps33QAh06eD/YDOGv2+pH2YTfEBV5OyAgiA1eOJREh4shz6t+Ljw81N5Z43GSJJFivtz0NJsSqy0KtG+u48K6rDGILiTGa3o71kPXCReJeK/1ktxkJo/WBEa3y0yHq4h5Pmy8CgYEAoec12+wleNJC2rq09NMQyf0jv9mJ9nfnOCd5iVX303ebz7i8ESr2ruJPrV/nLbYumjELX+8gzjmO+AY0IMotyPOWJCnYkm1cmeeta4YjHScTDUav0s9Ytol8CTESyHi/a4PrLDWpeYZPxSiBrOLIPk7SzBq4/CUbOW4cP3MrAcMCgYEAiQLnCvZBqExg7doINpx4aNhkzq3l6ccDbwu2L96OtCguegqoDQtOgMrGCQT9ogNYUDi0+ZyYOuWMiYldpHPcLLGQmIWJlHUHIsorqhDMA/jSoK2RFcwPigLjHU80s4HO8LGHW/YHUPOiXlHdLBrfOJWJ3hAG2g3cq2PSEbXzz2cCgYEA48CoevQ8xLOuVxHnfda+5H803YIGins3HN86TD4PXg/ujg1Y8bfKe4gXQ1p/byG1lCDXIOZ8wR5dKqJt/ra8JHBXx/vBBCgX07dd9slrTnivxB5bQYQGuO2aXfIsgNtul5IlbfuMJVx2vgDysTwmq4av0qLkC+FxBV1h8JWXMdU=', // 必填-应用公钥证书 路径 'app_cert_public_key' => 'alipaycert/appCertPublicKey_2021003143625682.crt', // 必填-支付宝公钥证书 路径 'ali_public_key' => 'alipaycert/alipayCertPublicKey_RSA2.crt', // 必填-支付宝根证书 路径 'alipay_root_cert' => 'alipaycert/alipayRootCert.crt', 'return_url' => 'http://dsm.mp.dongerkj.com', 'notify_url' => 'http://dsm.mp.dongerkj.com/api/notify/alipay' // 选填-服务商模式下的服务商 id,当 mode 为 Pay::MODE_SERVICE 时使用该参数 // 'service_provider_id' => '', // 选填-默认为正常模式。可选为: MODE_NORMAL, MODE_SANDBOX, MODE_SERVICE // 'mode' => Pay::MODE_NORMAL, , 'logger' => [ // optional 'enable' => false, '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) ], ]; public function web() { $result = Pay::alipay($this->config)->web([ 'out_trade_no' => ''.time(), 'total_amount' => '0.01', 'subject' => 'yansongda 测试 - 1', ]); return $result; } public function returnCallback() { $data = Pay::alipay($this->config)->callback(); // 是的,验签就这么简单! // 订单号:$data->out_trade_no // 支付宝交易号:$data->trade_no // 订单总金额:$data->total_amount } public function notifyCallback() { $alipay = Pay::alipay($this->config); try{ $data = $alipay->callback(); // 是的,验签就这么简单! // 请自行对 trade_status 进行判断及其它逻辑进行判断,在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。 // 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号; // 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额); // 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email); // 4、验证app_id是否为该商户本身。 // 5、其它业务逻辑情况 } catch (\Exception $e) { // $e->getMessage(); } return $alipay->success(); } public function getPayInfo($outTradeNo, $price, $subject = '') { $order = [ 'out_trade_no' => $outTradeNo, 'total_amount' => $price, 'subject' => $subject, //'http_method' => 'GET' ]; $alipay = Pay::alipay($this->config)->wap($order); $retData = $alipay->getContent(); // ErrorLog::saveMsg('aliPay请求支付参数', $retData, 1); return $retData; } public function getReturnInfo($outTradeNo, $trade_no,$price) { $order = [ 'out_trade_no' => $outTradeNo, 'refund_amount' => $price, 'trade_no' => $trade_no, ]; $alirefund=Pay::alipay($this->config)->refund($order); return $alirefund; } } if(empty($_REQUEST['op'])){ echo json_encode(['code'=>3,'msg'=>'error']); die; } $op = $_REQUEST['op']; if($op=='getPayInfo'){ try{ $alipay = new Alipay(); echo $alipay->getPayInfo($_REQUEST['outTradeNo'], $_REQUEST['price'], $_REQUEST['subject']); }catch(\Exception $e){ echo json_encode(['code'=>2,'msg'=>$e->getMessage()]); } }elseif($op=='getReturnInfo'){ try{ $alipay = new Alipay(); echo $alipay->getReturnInfo($_REQUEST['outTradeNo'], $_REQUEST['trade_no'], $_REQUEST['price']); }catch(\Exception $e){ echo json_encode(['code'=>2,'msg'=>$e->getMessage()]); } }else{ echo json_encode(['code'=>3,'msg'=>'error']); }