#### 1. 前言 --- 單次提現(xiàn)金額要求在 0.3 元 - 5000 元之間 企業(yè)付款到零錢需要使用商戶證書, 當配置的證書錯誤時會拋出異常, 而不是以返回值的形式返回 EasyWechat 4.x 企業(yè)付款 : [https://easywechat.com/docs/4.x/payment/transfer](https://easywechat.com/docs/4.x/payment/transfer) 微信支付開發(fā)文檔 : [https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1](https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1) #### 2. 執(zhí)行提現(xiàn) --- **特別注意: 證書配置錯誤時會拋出異常, 而不是以返回值的形式返回** ``` use EasyWeChat\Factory; $config = [ // 必要配置 'app_id' => 'xxxx',//小程序APPID 'mch_id' => 'your-mch-id',//商戶ID 'key' => 'key-for-signature', // 商戶API 密鑰 // 如需使用敏感接口(如企業(yè)付款、退款、公眾號發(fā)送現(xiàn)金紅包等)需要配置 API 證書 'cert_path' => 'path/to/your/cert.pem', // XXX: 絕對路徑?。。。? 'key_path' => 'path/to/your/key', // XXX: 絕對路徑?。。。?]; $app = Factory::payment($config); // 執(zhí)行企業(yè)付款到零錢 $result = $app->transfer->toBalance([ 'partner_trade_no' => '1233455', // 商戶訂單號,具有唯一性(只能是字母或者數(shù)字) 'openid' => 'oxTWIuGaIt6gTKsQRLau2M0yL16E', // 提現(xiàn)用戶openid 'check_name' => 'FORCE_CHECK', // NO_CHECK:不校驗姓名, FORCE_CHECK:強校驗真實姓名 're_user_name' => '王小帥', // 如果 check_name 設(shè)置為FORCE_CHECK,則必填用戶真實姓名 'amount' => 10000, // 企業(yè)付款金額,單位為分 'desc' => '提現(xiàn)', // 企業(yè)付款操作說明信息。必填 ]); ``` #### 3. 提現(xiàn)成功返回值 --- **`return_code` 通信標識, 表示接口是否請求成功, 而不是交易標識, 不能用于判斷提現(xiàn)結(jié)果** **`result_code` 業(yè)務結(jié)果標識, 當其值為 `SUCCESS` 時表示 `提現(xiàn)成功`** **執(zhí)行提現(xiàn)應使用`try catch`捕獲錯誤, 因為當證書文件錯誤時是拋出異常, 而不是以返回值的形式返回** ``` try { $result = $app->transfer->toBalance(); } catch (\Throwable $e) { fault($e->getMessage()); } if ( !empty($result['result_code']) && $result['result_code'] === 'SUCCESS') { // 提現(xiàn)成功 } else { // 提現(xiàn)失敗 } ``` ```php [ 'return_code' => 'SUCCESS', 'return_msg' => NULL, 'mch_appid' => 'wxb80ec74221f8a9ff', 'mchid' => '1538483281', 'nonce_str' => '60af3d9658162', 'result_code' => 'SUCCESS', 'partner_trade_no' => 'TX202105271435025469', 'payment_no' => '10101052430722105279091545815496', 'payment_time' => '2021-05-27 14:34:59', ] ``` #### 4. 提現(xiàn)失敗返回值 (常見場景) --- **開啟檢驗用戶名并且驗證失敗時** ``` [ 'return_code' => 'SUCCESS', 'return_msg' => '參數(shù)錯誤:沒有找到對應校驗用戶姓名選項.', 'result_code' => 'FAIL', 'err_code' => 'PARAM_ERROR', 'err_code_des' => '參數(shù)錯誤:沒有找到對應校驗用戶姓名選項.', ] ``` **提現(xiàn)金額小于 0.3 元** ```php [ 'return_code' => 'SUCCESS' 'return_msg' => '支付失敗' 'mch_appid' => 'wxb80ec74221f8a9ff' 'mchid' => '1538483281' 'result_code' => 'FAIL' 'err_code' => 'AMOUNT_LIMIT' 'err_code_des' => '付款金額超出限制。低于最小金額0.30元或累計超過5000.00元。' ] ```