gorden 8 months ago
parent
commit
886beebb46

+ 35 - 55
app/api/controller/pay/AlipayController.php

@@ -3,42 +3,30 @@
 namespace app\api\controller\pay;
 
 use app\api\controller\Log;
+use app\model\Order;
+use support\Request;
 use Yansongda\Pay\Pay;
 
 class AlipayController
 {
-    protected $config = [
-        'app_id' => '2021004155613207',
-        'notify_url' => 'http://yansongda.cn/notify.php',
-        'return_url' => 'http://yansongda.cn/return.php',
-        'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmlAp3QIQuDVJqQP5C+33LO6P5D9OOGXszClHNH/5Iep+/A+00vhLaSc9izgxV8XTWpqHcss/gGYfmjNtpDwF0RS1po6J7dTg8d6UJtqaNGCEMUc/r/+Jo+zrmSeoFRdwb5a+tIPC2xb58qrRuL4wYpvzSAwr9DNveKO30RJT3cXX98sYMs6gWhXOz5jBGFUlYQZ5WB1Nx8HM39spW7/QNINX0y4Wqqp0reWieMRE1aKrV9Fb4ehrJ3nDm64KHWfRw/g3Me9FvqkP03dkfPT4hykeHfWTUbuh+ifTjGMcVLxBnBX74vnNzk9zwn9l+UUuEg/1RbMcEF5ppMnt/Kog6wIDAQAB',
-        // 加密方式: **RSA2**
-        'private_key' => 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaUCndAhC4NUmpA/kL7fcs7o/kP044ZezMKUc0f/kh6n78D7TS+EtpJz2LODFXxdNamodyyz+AZh+aM22kPAXRFLWmjont1ODx3pQm2po0YIQxRz+v/4mj7OuZJ6gVF3Bvlr60g8LbFvnyqtG4vjBim/NIDCv0M294o7fRElPdxdf3yxgyzqBaFc7PmMEYVSVhBnlYHU3Hwczf2ylbv9A0g1fTLhaqqnSt5aJ4xETVoqtX0Vvh6GsnecObrgodZ9HD+Dcx70W+qQ/Td2R89PiHKR4d9ZNRu6H6J9OMYxxUvEGcFfvi+c3OT3PCf2X5RS4SD/VFsxwQXmmkye38qiDrAgMBAAECggEAE3EgJSE6fAryseG3QgKETtvrsyUqtL5avEpDF2E8QUKrJxTPgnkX/zKbdWvqA5YAD/1CLXtgD8xOFP5/xN5vGS2TyV1SEW3tvWt+nPqTzR+P6CmC46i9bbLO6Cfv7GBcoSKL+nBTX4kgiqts6urDa9kcKKqn6weD9t4hrayydlFhiXGT+zUtnkZobJIWmzG+ZLjusn/wp4vyQyXQGnjyiEmzCHab/n8hLfPR9d/3mfG/rj/mIJ9630H+mstMTGoZxDKobeC+k5HQpICyY9bbmug7IgZtqHCO0xou8tpinMRmk/wRD/Bg4XIDdAYgGucb0rpRvbI9KxgGpzpGFXFkuQKBgQDdY/eMdrwnH13XQT4l+ZrjEi7fkCTFvmfafJy1G55feFK9k+YmX7UXtcbw/bc59CqjIL/bpkYy1t+0SrB0eywGvMFBD3G3EZQnQmFmHW7bAba3pTcEoVlyhm9Oz9igvbpI1fZmaeqE+9DOVlWwtcLjhpBh/wuHP5KgyfWKBqwrBQKBgQCyb8PgKklTNFS7iHKBKTIx/ES4xZBSej/Q/lLY0ZGc2LTTGn2HxmmbcJIH5fR4+opOGSGsXc/vfp2pGk1yq42rRVVjUG7Y68J2VpIjELQ8SNbSK+4YqS8VI+Kez0m7ZDEWTwxMRbQTiCaBRUwGhjkReLyLrfXmz5Syxaf7rBg/LwKBgQDE4eQCDI2jFSf1B9ZnGyT9DuyUcLHjEUN2cB9EiH09VdnvMhoYwkBgB44WPuu1JEjOrY8xnRsMlz52LX3i+K7chvwuCbgNIBrrFwNbNo2hQlLl2o2lFoBfcuKF6h0yRcfmgjEQPt0Kyo6VEP4/mkTo5oB8Rb5Q1t5lE3XC+9AcqQKBgEJDENkguuQEDecqL2NZegNn69k1vHd0YFhq6TcM8+br7pJqRu1xt+v6LLB0K4n1eACygnewyrPkMAYI93O60zwj3iaoStGRE0DAuzn8TQIKBoQ7vgo4YXyXO+O/lGDbPwNKzYVRaSLLr4jXw/i0RWMAk/vG2QciVNTiY5Qo/0QPAoGANqq2RacHmcevwp3S3iXfHGxb8kfG90aGDtTr9AY965IGmy4ckKEZJ5+XkhH8Yi+YYWyIkTpgsSQUCDoBSvQ7FBSFnYn5CcX8MIpsx833DpGEK4PMeje0q/rbQ4P1/gOgvgICGWJsOYkzooFhX+TVGXCXE4EE3E471GadQOhy3EQ=',
-        '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()
+    public function index(Request $request)
     {
-        $order = [
-            'out_trade_no' => time(),
-            'total_amount' => '0.01',
-            'subject'      => 'test subject-测试订单',
-        ];
+        $orderId = $request->post('order_id','');
+        if (!$orderId){
+            return json_fail('参数异常');
+        }
+        $order = Order::where('order_id',$orderId)->where('order_status_payment','PENDING')->first();
+        if (!$order){
+            return json_fail('订单异常');
+        }
 
-        $alipay = Pay::alipay($this->config)->app($order);
+        $payData = [
+            'out_trade_no' => $orderId,
+            'subject' => '万悦悦享家订单',
+            'total_amount' => $order->order_amount_pay,
+        ];
 
-        return $alipay->send();// laravel 框架中请直接 `return $alipay`
+        return json_success('',Pay::alipay($this->getConfig())->app($payData)->getContent());
     }
 
     public function return()
@@ -76,32 +64,24 @@ class AlipayController
     private function getConfig()
     {
         return [
-            'alipay' => [
-                'default' => [
-                    // 必填-支付宝分配的 app_id
-                    'app_id' => '2021004155613207',
-                    // 必填-应用私钥 字符串或路径
-                    // 在 https://open.alipay.com/develop/manage 《应用详情->开发设置->接口加签方式》中设置
-                    'app_secret_cert' => 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaUCndAhC4NUmpA/kL7fcs7o/kP044ZezMKUc0f/kh6n78D7TS+EtpJz2LODFXxdNamodyyz+AZh+aM22kPAXRFLWmjont1ODx3pQm2po0YIQxRz+v/4mj7OuZJ6gVF3Bvlr60g8LbFvnyqtG4vjBim/NIDCv0M294o7fRElPdxdf3yxgyzqBaFc7PmMEYVSVhBnlYHU3Hwczf2ylbv9A0g1fTLhaqqnSt5aJ4xETVoqtX0Vvh6GsnecObrgodZ9HD+Dcx70W+qQ/Td2R89PiHKR4d9ZNRu6H6J9OMYxxUvEGcFfvi+c3OT3PCf2X5RS4SD/VFsxwQXmmkye38qiDrAgMBAAECggEAE3EgJSE6fAryseG3QgKETtvrsyUqtL5avEpDF2E8QUKrJxTPgnkX/zKbdWvqA5YAD/1CLXtgD8xOFP5/xN5vGS2TyV1SEW3tvWt+nPqTzR+P6CmC46i9bbLO6Cfv7GBcoSKL+nBTX4kgiqts6urDa9kcKKqn6weD9t4hrayydlFhiXGT+zUtnkZobJIWmzG+ZLjusn/wp4vyQyXQGnjyiEmzCHab/n8hLfPR9d/3mfG/rj/mIJ9630H+mstMTGoZxDKobeC+k5HQpICyY9bbmug7IgZtqHCO0xou8tpinMRmk/wRD/Bg4XIDdAYgGucb0rpRvbI9KxgGpzpGFXFkuQKBgQDdY/eMdrwnH13XQT4l+ZrjEi7fkCTFvmfafJy1G55feFK9k+YmX7UXtcbw/bc59CqjIL/bpkYy1t+0SrB0eywGvMFBD3G3EZQnQmFmHW7bAba3pTcEoVlyhm9Oz9igvbpI1fZmaeqE+9DOVlWwtcLjhpBh/wuHP5KgyfWKBqwrBQKBgQCyb8PgKklTNFS7iHKBKTIx/ES4xZBSej/Q/lLY0ZGc2LTTGn2HxmmbcJIH5fR4+opOGSGsXc/vfp2pGk1yq42rRVVjUG7Y68J2VpIjELQ8SNbSK+4YqS8VI+Kez0m7ZDEWTwxMRbQTiCaBRUwGhjkReLyLrfXmz5Syxaf7rBg/LwKBgQDE4eQCDI2jFSf1B9ZnGyT9DuyUcLHjEUN2cB9EiH09VdnvMhoYwkBgB44WPuu1JEjOrY8xnRsMlz52LX3i+K7chvwuCbgNIBrrFwNbNo2hQlLl2o2lFoBfcuKF6h0yRcfmgjEQPt0Kyo6VEP4/mkTo5oB8Rb5Q1t5lE3XC+9AcqQKBgEJDENkguuQEDecqL2NZegNn69k1vHd0YFhq6TcM8+br7pJqRu1xt+v6LLB0K4n1eACygnewyrPkMAYI93O60zwj3iaoStGRE0DAuzn8TQIKBoQ7vgo4YXyXO+O/lGDbPwNKzYVRaSLLr4jXw/i0RWMAk/vG2QciVNTiY5Qo/0QPAoGANqq2RacHmcevwp3S3iXfHGxb8kfG90aGDtTr9AY965IGmy4ckKEZJ5+XkhH8Yi+YYWyIkTpgsSQUCDoBSvQ7FBSFnYn5CcX8MIpsx833DpGEK4PMeje0q/rbQ4P1/gOgvgICGWJsOYkzooFhX+TVGXCXE4EE3E471GadQOhy3EQ=',
-                    // 必填-应用公钥证书 路径
-                    // 设置应用私钥后,即可下载得到以下3个证书
-                    'app_public_cert_path' => config_path('cert/alipay/appCertPublicKey.crt'),
-                    // 必填-支付宝公钥证书 路径
-                    'alipay_public_cert_path' => config_path('cert/alipay/alipayCertPublicKey_RSA2.crt'),
-                    // 必填-支付宝根证书 路径
-                    'alipay_root_cert_path' => config_path('cert/alipay/alipayRootCert.crt'),
-                    // 回调地址
-                    'return_url' => 'https://xxx.cn/api/pay/alipay/return',
-                    // 通知地址
-                    'notify_url' => 'https://xxx.cn/api/pay/alipay/notify',
-                    // 选填-第三方应用授权token
-                    'app_auth_token' => '',
-                    // 选填-服务商模式下的服务商 id,当 mode 为 Pay::MODE_SERVICE 时使用该参数
-                    'service_provider_id' => '',
-                    // 选填-默认为正常模式。可选为: MODE_NORMAL, MODE_SANDBOX, MODE_SERVICE
-                    'mode' => Pay::MODE_NORMAL,
-                ]
-            ]
+            'app_id' => '2021004155613207',
+            'notify_url' => 'https://api.wanyuewellness.com.cn/api.pay.notify.php',
+            'return_url' => 'https://api.wanyuewellness.com.cn/api.pay.notify.php',
+            'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmlAp3QIQuDVJqQP5C+33LO6P5D9OOGXszClHNH/5Iep+/A+00vhLaSc9izgxV8XTWpqHcss/gGYfmjNtpDwF0RS1po6J7dTg8d6UJtqaNGCEMUc/r/+Jo+zrmSeoFRdwb5a+tIPC2xb58qrRuL4wYpvzSAwr9DNveKO30RJT3cXX98sYMs6gWhXOz5jBGFUlYQZ5WB1Nx8HM39spW7/QNINX0y4Wqqp0reWieMRE1aKrV9Fb4ehrJ3nDm64KHWfRw/g3Me9FvqkP03dkfPT4hykeHfWTUbuh+ifTjGMcVLxBnBX74vnNzk9zwn9l+UUuEg/1RbMcEF5ppMnt/Kog6wIDAQAB',
+            // 加密方式: **RSA2**
+            'private_key' => 'MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaUCndAhC4NUmpA/kL7fcs7o/kP044ZezMKUc0f/kh6n78D7TS+EtpJz2LODFXxdNamodyyz+AZh+aM22kPAXRFLWmjont1ODx3pQm2po0YIQxRz+v/4mj7OuZJ6gVF3Bvlr60g8LbFvnyqtG4vjBim/NIDCv0M294o7fRElPdxdf3yxgyzqBaFc7PmMEYVSVhBnlYHU3Hwczf2ylbv9A0g1fTLhaqqnSt5aJ4xETVoqtX0Vvh6GsnecObrgodZ9HD+Dcx70W+qQ/Td2R89PiHKR4d9ZNRu6H6J9OMYxxUvEGcFfvi+c3OT3PCf2X5RS4SD/VFsxwQXmmkye38qiDrAgMBAAECggEAE3EgJSE6fAryseG3QgKETtvrsyUqtL5avEpDF2E8QUKrJxTPgnkX/zKbdWvqA5YAD/1CLXtgD8xOFP5/xN5vGS2TyV1SEW3tvWt+nPqTzR+P6CmC46i9bbLO6Cfv7GBcoSKL+nBTX4kgiqts6urDa9kcKKqn6weD9t4hrayydlFhiXGT+zUtnkZobJIWmzG+ZLjusn/wp4vyQyXQGnjyiEmzCHab/n8hLfPR9d/3mfG/rj/mIJ9630H+mstMTGoZxDKobeC+k5HQpICyY9bbmug7IgZtqHCO0xou8tpinMRmk/wRD/Bg4XIDdAYgGucb0rpRvbI9KxgGpzpGFXFkuQKBgQDdY/eMdrwnH13XQT4l+ZrjEi7fkCTFvmfafJy1G55feFK9k+YmX7UXtcbw/bc59CqjIL/bpkYy1t+0SrB0eywGvMFBD3G3EZQnQmFmHW7bAba3pTcEoVlyhm9Oz9igvbpI1fZmaeqE+9DOVlWwtcLjhpBh/wuHP5KgyfWKBqwrBQKBgQCyb8PgKklTNFS7iHKBKTIx/ES4xZBSej/Q/lLY0ZGc2LTTGn2HxmmbcJIH5fR4+opOGSGsXc/vfp2pGk1yq42rRVVjUG7Y68J2VpIjELQ8SNbSK+4YqS8VI+Kez0m7ZDEWTwxMRbQTiCaBRUwGhjkReLyLrfXmz5Syxaf7rBg/LwKBgQDE4eQCDI2jFSf1B9ZnGyT9DuyUcLHjEUN2cB9EiH09VdnvMhoYwkBgB44WPuu1JEjOrY8xnRsMlz52LX3i+K7chvwuCbgNIBrrFwNbNo2hQlLl2o2lFoBfcuKF6h0yRcfmgjEQPt0Kyo6VEP4/mkTo5oB8Rb5Q1t5lE3XC+9AcqQKBgEJDENkguuQEDecqL2NZegNn69k1vHd0YFhq6TcM8+br7pJqRu1xt+v6LLB0K4n1eACygnewyrPkMAYI93O60zwj3iaoStGRE0DAuzn8TQIKBoQ7vgo4YXyXO+O/lGDbPwNKzYVRaSLLr4jXw/i0RWMAk/vG2QciVNTiY5Qo/0QPAoGANqq2RacHmcevwp3S3iXfHGxb8kfG90aGDtTr9AY965IGmy4ckKEZJ5+XkhH8Yi+YYWyIkTpgsSQUCDoBSvQ7FBSFnYn5CcX8MIpsx833DpGEK4PMeje0q/rbQ4P1/gOgvgICGWJsOYkzooFhX+TVGXCXE4EE3E471GadQOhy3EQ=',
+            'log' => [ // optional
+                'file' => runtime_path('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,设置此参数,将进入沙箱模式
         ];
     }
 }

+ 20 - 9
app/api/controller/pay/WxpayController.php

@@ -2,20 +2,31 @@
 
 namespace app\api\controller\pay;
 
+use app\model\Order;
+use support\Request;
 use Yansongda\Pay\Pay;
 
 class WxpayController
 {
 
-    public function index()
+    public function index(Request $request)
     {
-        $order = [
-            'out_trade_no' => time(),
-            'body' => 'subject-测试',
-            'total_fee' => '1',
+        $orderId = $request->post('order_id','');
+        if (!$orderId){
+            return json_fail('参数异常');
+        }
+        $order = Order::where('order_id',$orderId)->where('order_status_payment','PENDING')->first();
+        if (!$order){
+            return json_fail('订单异常');
+        }
+
+        $payData = [
+            'out_trade_no' => $orderId,
+            'body' => '万悦悦享家订单',
+            'total_fee' => $order->order_amount_pay,
         ];
 
-        return Pay::wechat($this->getConfig())->app($order);
+        return json_success('',Pay::wechat($this->getConfig())->app($payData));
 
         // $pay->appId
         // $pay->timeStamp
@@ -45,12 +56,12 @@ class WxpayController
             'appid' => 'wx089c26eaf96c3d51', // APP APPID
             'mch_id' => '1680393367',
             'key' => 'c451cedbab8058e3502a35c6dacf0919',
-            'notify_url' => 'http://yanda.net.cn/notify.php',
+            'notify_url' => 'https://api.wanyuewellness.com.cn/api.pay.notify.php',
             'cert_client' => config_path('cert/wxpay/apiclient_cert.pem'), // optional,退款等情况时用到
             'cert_key' => config_path('cert/wxpay/apiclient_key.pem'),// optional,退款等情况时用到
             'log' => [ // optional
                 'file' => runtime_path('logs/wechat.log'),
-                'level' => 'debug', // 建议生产环境等级调整为 info,开发环境为 debug
+                'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug
                 'type' => 'single', // optional, 可选 daily.
                 'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
             ],
@@ -59,7 +70,7 @@ class WxpayController
                 'connect_timeout' => 5.0,
                 // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
             ],
-//            'mode' => 'optional', // optional, dev/hk;当为 `hk` 时,为中国香港 gateway。
+//            'mode' => 'dev', // optional, dev/hk;当为 `hk` 时,为中国香港 gateway。
         ];
     }
 }