逻辑开始
首先下载插件composer require overtrue/laravel-wechat
自定义laravel artisan控制台命令,用户crontab 定时执行。
执行此命令php artisan command Wechat_server –command=wechat_server会在app\Console\Commands\ 生成Wechat_server.php文件,具体的注册命令就不说了。想了解可以去看一下laravel 文档。
这段代码是微信企业付款的配置项:
use use EasyWeChat\Factory; //引入 public function handle() { $this->info("开始执行...."); $cOnfig= [ 'app_id' => config("wechat.wechat_app_appid"), //微信开放平台 'mch_id' => $payment['wxnative_mchid'], //微信商户号 'key' => $payment['wxnative_key'], // API密钥 'cert_path' => ROOT_PATH.'mw_server/weixin_cert/apiclient_cert.pem', // XXX: 绝对路径!!!! 'key_path' => ROOT_PATH.'mw_server/weixin_cert/apiclient_key.pem', // XXX: 绝对路径!!!! ]; $app = Factory::payment($config); $this->get_user_account_list($app); $this->info("执行结束...");}//参数拼接,逻辑开始public function get_user_account_list($app){ $a = [ 'partner_trade_no' =>‘123123123’, // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号) 'openid' => “ ”, 用户在平台下的openid,取决于appid 'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名 're_user_name' => "nickname", // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名 'amount' =>abs(1) * 100,// 企业付款金额,单位为分 'desc' =>"环球猫王提现转账"//企业付款操作说明信息。必填 ]; $result=$app->transfer->toBalance($a); //发送请求}
这里主要说一下 c o n f i g 配 置 数 组 中 的 a p p i d 和 config 配置数组中的appid和 config配置数组中的appid和a 参数数组中openid
上面说到了appid 公众平台是独立的,开放平台也是独立的,所以app微信提现就要选择开放平台的appid,公众号微信提现就选择公众平台的appid
用户openid在开放平台下 && 公众平台下是不一样的,所以要选对主人,在app微信提现填写的开放平台下的appid,openid你就要填写开放平台下的,公众号提现也是一样的道理。
话说回来,开放平台的openid是怎么获取的呢?开放平台获区用户的openid有俩中方式,一个是用户授权,一个是app微信支付,都是可以获取到用户的openid,存起来即可。
公众平台下的openid就很好解决了,用户关注公众号、用户授权、jsp支付、获取用户信息接口等。。。都是可以拿到用户的openid。
上述所说的开放平台信息跟公众平台信息分开进行提现,是本人亲自实现得出,并且已实施生成环境,如有不对欢迎指出。