第一步:应用 composer 装置 EasyWeChat
https://www.easywechat.com/docs/3.x/installation
第二步:在后面咱们曾经讲过,初始化 SDK 的时候办法就是创立一个
EasyWeChat\Foundation\Application 实例:use EasyWeChat\Foundation\Application;
$options = [// ...];
$app = new Application($options);
/**
* 如果想要在 Application 实例化实现之后, 批改某一个 options 的值,
* 比方服务商 + 子商户领取回调场景, 所有子商户订单领取信息都是通过同一个服务商的 $option 配置进来的,
* 当 oauth 在微信端验证实现之后, 能够通过动静设置 merchant_id 来辨别具体是哪个子商户
*/$app['config']->set('oauth.callback','wechat/oauthcallback/'. $sub_merchant_id->id);
那么配置的具体选项有哪些,上面是一个残缺的列表:
<?php
return [
/**
* 账号根本信息,请从微信公众平台 / 开放平台获取
*/
'app_id' => 'your-app-id', // AppID
'secret' => 'your-app-secret', // AppSecret
'token' => 'your-token', // Token
'aes_key' => '', // EncodingAESKey,平安模式与兼容模式下请肯定要填写!!!/**
* OAuth 配置
*
* scopes:公众平台(snsapi_userinfo / snsapi_base),开放平台:snsapi_login
* callback:OAuth 受权实现后的回调页地址
*/
'oauth' => ['scopes' => ['snsapi_userinfo'],
'callback' => '/examples/oauth_callback.php',
],
/**
* 微信领取
*/
'payment' => [
'merchant_id' => 'your-mch-id',
'key' => 'key-for-signature',
'cert_path' => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!'key_path' => 'path/to/your/key', // XXX: 绝对路径!!!!],
* 更多请参考:http://docs.guzzlephp.org/en/latest/request-options.html
*/
'guzzle' => ['timeout' => 3.0, // 超时工夫(秒)],];
第三步:应用 EasyWeChat 实现提现到零钱性能(企业付款到零钱)
你在浏览本文之前确认你曾经仔细阅读了:https://pay.weixin.qq.com/wik…。
与其余领取接口一样,企业领取接口也须要配置如下参数,须要特地留神的是,企业领取相干的全副接口 都须要应用 SSL 证书,因而 cert_path 以及 cert_key 必须正确配置。
<?php
use EasyWeChat\Foundation\Application;
$options = [
'app_id' => 'your-app-id',
// payment
'payment' => [
'merchant_id' => 'your-mch-id',
'key' => 'key-for-signature',
'cert_path' => 'path/to/your/cert.pem',
'key_path' => 'path/to/your/key',
// ...
],];
$app = new Application($options);
$merchantPay = $app->merchant_pay;
企业付款
企业付款应用的余额跟微信领取的收款并非同一账户,请留神充值。
<?php
$merchantPayData = ['partner_trade_no' => str_random(16), // 随机字符串作为订单号,跟红包和领取一个概念。'openid' => $openid, // 收款人的 openid
'check_name' => 'NO_CHECK', // 文档中有三种校验实名的办法 NO_CHECK OPTION_CHECK FORCE_CHECK
're_user_name'=>'张三', //OPTION_CHECK FORCE_CHECK 校验实名的时候必须提交
'amount' => 100, // 单位为分
'desc' => '企业付款',
'spbill_create_ip' => '192.168.0.1', // 发动交易的 IP 地址
];
$result = $merchantPay->send($merchantPayData);
查问付款信息
用于商户对已发放的企业领取进行查问企业领取的具体信息。
$partnerTradeNo = “ 商户零碎外部的订单号(partner_trade_no)”;
$merchantPay->query($partnerTradeNo);
常识付费零碎的微信性能根本类 extend\service\WechatService;依照文档阐明咱们在 WechatService 类中增加企业付款的接口,接口名称为 merchantPayService,若是存在就不须要增加;
/**
* 企业付款
* @return \EasyWeChat\Material\Material
*/
public static function merchantPayService()
{return self::application()->merchant_pay;
}
那么咱们所须要的就是调用 merchantPayService 办法里的 send 办法,并且传入咱们转账的参数即可。
咱们须要把性能加到提现审核通过之后执行。admin\model\user\UserExtract;找到这个类中的 changeSuccess 办法,这个办法是审核通过后的相干操作。
(1). 先引入 WechatService;
use service\WechatService;
(2).changeSuccess 办法里加上面代码,并且依据最初的返回判断企业付款是否胜利。
$payData = ['partner_trade_no' => str_random(16), // 随机字符串作为订单号,跟红包和领取一个概念。'openid' => $openid, // 收款人的 openid
'check_name' => 'NO_CHECK', // 文档中有三种校验实名的办法 NO_CHECK OPTION_CHECK FORCE_CHECK
're_user_name'=>'张三', //OPTION_CHECK FORCE_CHECK 校验实名的时候必须提交
'amount' => 100, // 单位为分
'desc' => '企业付款',
'spbill_create_ip' => '192.168.0.1', // 发动交易的 IP 地址
];
$result=WechatService::merchantPayService()->send($payData);
最初
如果你感觉这篇文章对你有点用的话,麻烦请给咱们的开源我的项目点点 star:http://github.crmeb.net/u/defu 不胜感激!
收费获取源码地址:http://www.crmeb.com
PHP 学习手册:https://doc.crmeb.com
技术交换论坛:https://q.crmeb.com