Payment.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace app\api\controller;
  3. use think\facade\View;
  4. use think\facade\Lang;
  5. /**
  6. * ============================================================================
  7. * DSMall多用户商城
  8. * ============================================================================
  9. * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
  10. * 网站地址: http://www.csdeshang.com
  11. * ----------------------------------------------------------------------------
  12. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
  13. * 不允许对程序代码以任何形式任何目的的再发布。
  14. * ============================================================================
  15. * 支付回调控制器
  16. */
  17. class Payment extends MobileMall {
  18. public function initialize() {
  19. parent::initialize(); // TODO: Change the autogenerated stub
  20. Lang::load(base_path() . 'home/lang/'.config('lang.default_lang').'/buy.lang.php');
  21. }
  22. /**
  23. * Alipay支付回调
  24. */
  25. public function alipay_h5_return() {
  26. $out_trade_no = explode('-', input('param.out_trade_no'));
  27. $order_type = $out_trade_no['0'];
  28. $out_trade_no = $out_trade_no['1'];
  29. $trade_no = input('param.trade_no');
  30. $payment_code = 'alipay_h5';
  31. //创建支付接口对象
  32. $logic_payment = model('payment', 'logic');
  33. $result = $logic_payment->getPaymentInfo($payment_code);
  34. if (!$result['code']) {
  35. $this->error($result['msg'], 'Memberorder/index');
  36. }
  37. $payment_info = $result['data'];
  38. //创建支付接口对象
  39. $payment_api = new $payment_info['payment_code']($payment_info);
  40. //取得支付结果
  41. $callback_info = $payment_api->verify_return();
  42. if (!$callback_info) {
  43. View::assign('result', 'fail');
  44. View::assign('message', lang('order_pay_fail'));
  45. } else {
  46. View::assign('result', 'success');
  47. View::assign('message', lang('order_payment_success'));
  48. }
  49. //支付成功后跳转
  50. if ($order_type == 'real_order') {
  51. $pay_ok_url = config('ds_config.h5_site_url') . '/pages/member/order/OrderList';
  52. } elseif ($order_type == 'vr_order') {
  53. $pay_ok_url = config('ds_config.h5_site_url') . '/pages/member/vrorder/OrderList';
  54. } elseif ($order_type == 'pd_order') {
  55. $pay_ok_url = config('ds_config.h5_site_url') . '/pages/member/recharge/RechargeList';
  56. }
  57. View::assign('pay_ok_url', $pay_ok_url);
  58. return View::fetch('payment_message');
  59. }
  60. }