| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- namespace app;
- require 'vendor/autoload.php';
- use Yansongda\Pay\Pay;
- class Alipay
- {
- protected $config = [
-
- // 必填-支付宝分配的 app_id
- 'app_id' => '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://itaoniu.com.cn',
- 'notify_url' => 'http://itaoniu.com.cn/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']);
- }
|