• 微信提现又叫 微信企业付款 顾名思义:微信企业帐号向某一个用户打款的流程。
  • 官网文档中说明,企业付款目前只支持向 商户appid下,某用户的openid 这就话的意思对于新手来说真的搞不明白是啥意思。是指公众平台下的用户openid ?还是开放平台下的用户opendid ? 微信企业付款官方文档
  • 上面提出的问题,如果知道的人,就没必要向下看了,不知道的,咱们这就来说说看。
  • 微信开放平台: 一般是用来建立APP移动端应用,只要是针对安卓、IOS开发的文档,例如:app微信三方登录、微信APP支付等。。。 开放平台是有独立的appid。
  • 微信公众平台:微信后端开发必须要懂里面设置,来个图大家看一下。这里只要是微信公号的开发配置也就是H5页面。公众号也是有独立的appid。

微信企业用户付钱给用户 java_微信企业用户付钱给用户 java

  • 微信商户平台:这里只要集中于微信的各类支付业务,要做微信jsp支付还是H5支付或者微信app支付,都是在这里。
  • 简单的看一下微信商户平台、微信公众平台、微信开放平台的关系

微信企业用户付钱给用户 java_开放平台_02

  • 在这种图中看出来微信公众平台跟开放平台基本没啥关系,大家都知道获取用户的openid必须有appid,所以开放平台用户的openid跟公众平台用户的openid是不一样的。
  • 上面叨叨这么多,也是微信本人在做微信app提现和公众号提现的时候,遇到的问题无人解答只能自己摸索。特此写的啰嗦了,下面开始laravel下使用-laravel-easy-WeChat微信企业付款代码。

逻辑开始

  • 首先下载插件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);         //发送请求
}
  • 这里主要说一下微信企业用户付钱给用户 java_微信_03a 参数数组中openid
  • 上面说到了appid 公众平台是独立的,开放平台也是独立的,所以app微信提现就要选择开放平台的appid,公众号微信提现就选择公众平台的appid
  • 用户openid在开放平台下 && 公众平台下是不一样的,所以要选对主人,在app微信提现填写的开放平台下的appid,openid你就要填写开放平台下的,公众号提现也是一样的道理。
  • 话说回来,开放平台的openid是怎么获取的呢?开放平台获区用户的openid有俩中方式,一个是用户授权,一个是app微信支付,都是可以获取到用户的openid,存起来即可。
  • 公众平台下的openid就很好解决了,用户关注公众号、用户授权、jsp支付、获取用户信息接口等。。。都是可以拿到用户的openid。
  • 上述所说的开放平台信息跟公众平台信息分开进行提现,是本人亲自实现得出,并且已实施生成环境,如有不对欢迎指出。