RechargeNotify.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 服务商统一回调通知
  7. */
  8. namespace app\system\controller\event;
  9. use think\Controller;
  10. use app\common\facade\WechatPay;
  11. use app\common\model\SystemMemberBank;
  12. use app\common\model\SystemMemberBankBill;
  13. use app\common\model\SystemMemberBankRecharge;
  14. use Exception;
  15. class RechargeNotify extends Controller{
  16. /**
  17. * 帐号充值微信回调通知
  18. * @return void
  19. */
  20. public function wechat(){
  21. try {
  22. $response = WechatPay::doPay()->handlePaidNotify(function($message,$fail){
  23. $rel = SystemMemberBankRecharge::where(['order_sn' =>$message['out_trade_no'],'state' => 0])->find();
  24. if (empty($rel)) {
  25. return true;
  26. }
  27. if ($message['result_code'] === 'SUCCESS') {
  28. if($message['result_code'] === 'SUCCESS'){
  29. $ispay = WechatPay::doPay()->order->queryByOutTradeNumber($rel->order_sn);
  30. if ($ispay['return_code'] === 'SUCCESS') {
  31. if ($ispay['result_code'] === 'SUCCESS') {
  32. if ($ispay['trade_state'] === 'SUCCESS'){
  33. if($ispay['total_fee'] == $rel->money * 100){
  34. $rel->state =1;
  35. $rel->update_time = time();
  36. $rel->transaction_id = $ispay['transaction_id'];;
  37. $rel->save();
  38. }
  39. $memberBankBill = new SystemMemberBankBill();
  40. $memberBankBill->money = $ispay['total_fee']/100;
  41. $memberBankBill->member_id = $rel->member_id;
  42. $memberBankBill->update_time = time();
  43. $memberBankBill->state = 0;
  44. $memberBankBill->save();
  45. SystemMemberBank::moneyUpdate($rel->member_id,$ispay['total_fee']/100);
  46. return true;
  47. }
  48. }
  49. }
  50. }
  51. }
  52. return $fail('通信失败,请稍后再通知我');
  53. });
  54. $response->send();
  55. }catch (Exception $e) {
  56. $this->error('页面不存在');
  57. }
  58. }
  59. }