PayJsController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Components\Callback;
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Http\Request;
  6. use Log;
  7. use Xhat\Payjs\Payjs;
  8. class PayJsController extends Controller
  9. {
  10. use Callback;
  11. // 接收GET请求
  12. public function index(Request $request)
  13. {
  14. Log::info("【PayJs】回调接口[GET]:".var_export($request->all(), TRUE).'['.getClientIp().']');
  15. exit("【PayJs】接口正常");
  16. }
  17. // 接收POST请求
  18. public function store(Request $request)
  19. {
  20. Log::info("【PayJs】回调接口[POST]:".var_export($request->all(), TRUE));
  21. $config = [
  22. 'mchid' => self::$systemConfig['payjs_mch_id'],
  23. 'key' => self::$systemConfig['payjs_key'],
  24. ];
  25. // 初始化
  26. $payjs = new Payjs($config);
  27. $notify_info = $payjs->notify();
  28. // 使用
  29. $result = "fail";
  30. if($notify_info['return_code'] == 1){ // 验证成功
  31. $result = "success";
  32. // 商户订单号
  33. $data = [];
  34. $data['out_trade_no'] = $request->input('out_trade_no');
  35. // 接口交易号
  36. $data['trade_no'] = $request->input('payjs_order_id');
  37. // 交易状态
  38. $data['trade_status'] = $request->input('return_code');
  39. // 交易金额(这里是按照结算货币汇率的金额,和rmb_fee不相等)
  40. $data['total_amount'] = $request->input('total_fee');
  41. $this->tradePaid($data, 6);
  42. }else{
  43. Log::info('PayJs-POST:验证失败['.getClientIp().']');
  44. }
  45. // 返回验证结果
  46. exit($result);
  47. }
  48. }