【跟我做】簡(jiǎn)單兩部使用laravel-easy-WeChat包快速實(shí)現(xiàn)微信企業(yè)付款到用戶(hù)零錢(qián)包功能

最近在使用laravel框架做一款小程序后臺(tái),要使用到微信用戶(hù)提現(xiàn)到零錢(qián)包功能,在網(wǎng)上翻了一下大多都是用戶(hù)下單支付給企業(yè)的教程,針對(duì)企業(yè)付款給用戶(hù)的教程很少,特別是支付回調(diào)功能有個(gè)坑,浪費(fèi)了不少時(shí)間。

第一步:

1.安裝包文件:(如果使用更高版本,請(qǐng)查看easywechat文檔)

```

composer require "overtrue/laravel-wechat:~4.0"

```

注冊(cè)ServiceProvider:在config下的app.php中的 providers 數(shù)組中添加:

```

Overtrue\LaravelWechat\ServiceProvider::class,

```

創(chuàng)建配置文件:在命令行中執(zhí)行

```

php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"

```

第二步:

統(tǒng)一下單

沒(méi)錯(cuò),什么 H5 支付,公眾號(hào)支付,掃碼支付,全部都是用這個(gè)接口下單。

在控制器內(nèi)引用

```

<?php

namespace App\Http\Controllers\Dashboard;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use EasyWeChat\Factory;//引入支付門(mén)面類(lèi)

use DB;

class WithdrawController extends Controller {

? ? public function transferToUser($id,Request $request){


? ? ? ? $config = [

? ? // 必要配置

? ? 'app_id'? ? ? ? ? ? => 'XXXX',//微信appid

? ? 'mch_id'? ? ? ? ? ? =>'XXXX',//商戶(hù)id

? ? 'key'? ? ? ? ? ? ? ? => 'XXXX',? // API 密鑰

? ? // 如需使用敏感接口(如退款、發(fā)送紅包等)需要配置 API 證書(shū)路徑(登錄商戶(hù)平臺(tái)下載 API 證書(shū))


? ? 'cert_path'? ? ? ? ? => base_path().'/public/cert/apiclient_cert.pem', // XXX: 絕對(duì)路徑?。。?!

? ? ? ? ? ? 'key_path'? ? ? ? ? => base_path().'/public/cert/apiclient_key.pem',? ? ? // XXX: 絕對(duì)路徑!?。?!

];


$app = Factory::payment($config);

$result=$app->transfer->toBalance([

? ? 'partner_trade_no' =>'SN12345678XXXXXXXXXX', //特別注意這里,參數(shù)跟用戶(hù)支付給企業(yè)out_trade_no區(qū)分開(kāi)來(lái),這里可以使用隨機(jī)字符串作為訂單號(hào),跟紅包和支付一個(gè)概念。

? ? ? ? 'openid' => 'XXXXX', //收款人的openid

? ? ? ? 'check_name' => 'FORCE_CHECK',? //文檔中有三種校驗(yàn)實(shí)名的方法 NO_CHECK不校驗(yàn) OPTION_CHECK參數(shù)校驗(yàn) FORCE_CHECK強(qiáng)制校驗(yàn)

? ? ? ? 're_user_name'=>'',? ? //OPTION_CHECK FORCE_CHECK 校驗(yàn)實(shí)名的時(shí)候必須提交

? ? ? ? 'amount' =>'XXXX',? //單位為分

? ? ? ? 'desc' => '錢(qián)包提現(xiàn)',

? ? ? ? 'spbill_create_ip' => '39.108.XXX.VVV',? //發(fā)起交易的服務(wù)器IP地址

]);


? ? if($result['result_code']=='SUCCESS'){

? ? //這里寫(xiě)支付成功相關(guān)邏輯,更新數(shù)據(jù)庫(kù)訂單狀態(tài)為已付款,給用戶(hù)推送到賬模板消息,短信通知用戶(hù)等

? ? }else{

? ? ? ? ? ? //支付失敗相關(guān)回調(diào)處理

? ? ? ? }

? ? }

}

```

至此整個(gè)企業(yè)付款到零錢(qián)的功能就實(shí)現(xiàn)了。

這里要注意的是企業(yè)付款到用戶(hù)零錢(qián)是沒(méi)有回調(diào)通知的,如果要二次確認(rèn)款項(xiàng)是否到賬可以調(diào)用下面方法

```

//查詢(xún)付款到零錢(qián)的訂單

public function queryOrder(){

$config = [

? ? // 必要配置

? ? 'app_id'? ? ? ? ? ? => 'XXXX',//微信appid

? ? 'mch_id'? ? ? ? ? ? =>'XXXX',//商戶(hù)id

? ? 'key'? ? ? ? ? ? ? ? => 'XXXX',? // API 密鑰

? ? // 如需使用敏感接口(如退款、發(fā)送紅包等)需要配置 API 證書(shū)路徑(登錄商戶(hù)平臺(tái)下載 API 證書(shū))

? 'cert_path'? ? ? ? ? => base_path().'/public/cert/apiclient_cert.pem', // XXX: 絕對(duì)路徑!?。?!

? ? 'key_path'? ? ? ? ? => base_path().'/public/cert/apiclient_key.pem',? ? ? // XXX: 絕對(duì)路徑?。。?!

];

? ? ? $app = Factory::payment($config);

? ? ? $partnerTradeNo = 1233455;

? ? ? $app->transfer->queryBalanceOrder($partnerTradeNo);

}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容