| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- <?php
 
- namespace addons\epay\controller;
 
- use addons\epay\library\Service;
 
- use fast\Random;
 
- use think\addons\Controller;
 
- use Exception;
 
- /**
 
-  * 微信支付宝整合插件首页
 
-  *
 
-  * 此控制器仅用于开发展示说明和测试,请自行添加一个新的控制器进行处理返回和回调事件,同时删除此控制器文件
 
-  *
 
-  * Class Index
 
-  * @package addons\epay\controller
 
-  */
 
- class Index extends Controller
 
- {
 
-     protected $layout = 'default';
 
-     protected $config = [];
 
-     public function _initialize()
 
-     {
 
-         parent::_initialize();
 
-         if (!config("app_debug")) {
 
-             $this->error("仅在开发环境下查看");
 
-         }
 
-     }
 
-     public function index()
 
-     {
 
-         $this->view->assign("title", "微信支付宝整合");
 
-         return $this->view->fetch();
 
-     }
 
-     /**
 
-      * 体验,仅供开发测试
 
-      */
 
-     public function experience()
 
-     {
 
-         $amount = $this->request->request('amount');
 
-         $type = $this->request->request('type');
 
-         $method = $this->request->request('method');
 
-         if (!$amount || $amount < 0) {
 
-             $this->error("支付金额必须大于0");
 
-         }
 
-         if (!$type || !in_array($type, ['alipay', 'wechat'])) {
 
-             $this->error("支付类型不能为空");
 
-         }
 
-         //订单号
 
-         $out_trade_no = date("YmdHis") . mt_rand(100000, 999999);
 
-         //订单标题
 
-         $title = '测试订单';
 
-         //回调链接
 
-         $notifyurl = $this->request->root(true) . '/addons/epay/index/notifyx/paytype/' . $type;
 
-         $returnurl = $this->request->root(true) . '/addons/epay/index/returnx/paytype/' . $type . '/out_trade_no/' . $out_trade_no;
 
-         $response = Service::submitOrder($amount, $out_trade_no, $type, $title, $notifyurl, $returnurl, $method);
 
-         return $response;
 
-     }
 
-     /**
 
-      * 支付成功,仅供开发测试
 
-      */
 
-     public function notifyx()
 
-     {
 
-         $paytype = $this->request->param('paytype');
 
-         $pay = Service::checkNotify($paytype);
 
-         if (!$pay) {
 
-             echo '签名错误';
 
-             return;
 
-         }
 
-         $data = $pay->verify();
 
-         try {
 
-             $payamount = $paytype == 'alipay' ? $data['total_amount'] : $data['total_fee'] / 100;
 
-             $out_trade_no = $data['out_trade_no'];
 
-             //你可以在此编写订单逻辑
 
-         } catch (Exception $e) {
 
-         }
 
-         //下面这句必须要执行,且在此之前不能有任何输出
 
-         return $pay->success()->send();
 
-     }
 
-     /**
 
-      * 支付返回,仅供开发测试
 
-      */
 
-     public function returnx()
 
-     {
 
-         $paytype = $this->request->param('paytype');
 
-         $out_trade_no = $this->request->param('out_trade_no');
 
-         $pay = Service::checkReturn($paytype);
 
-         if (!$pay) {
 
-             $this->error('签名错误', '');
 
-         }
 
-         //你可以在这里通过out_trade_no去验证订单状态
 
-         //但是不可以在此编写订单逻辑!!!
 
-         $this->success("请返回网站查看支付结果", addon_url("epay/index/index"));
 
-     }
 
- }
 
 
  |