fastadmin使用微信支付宝整合插件添加商家转账到零钱功能

1、准备工作,先自行申请微信支付的 商家转账到零钱 功能  网上找找攻略 准备好说明 申请个三四次咋也过审了!

2、其实《微信支付宝整合插件》把各种的方法已经写好了但是没给具体的实现代码,但是在接口处的对外连接实际已经写好了! 下面是我具体的实操讲解!

2.1 修改 /addons/epay/library/Service.php   文件  在最下方新增个方法!

    /**
     * 商家转账到零钱
     * @param $user 用户信息
     * @param $order_no 订单编号
     * @param $detail_no 交易编号
     * @param $money 金额
     * @param $remarks 备注
     * @param $url 回调地址
     * @return bool
     */
    public static function transfer($user ,$order_no,$detail_no, $money,$remarks,$url=null)
    {
        $config = Service::getConfig('wechat');
        // 验证参数
        if (empty($user) || empty($order_no) || empty($detail_no) || empty($money) || empty($remarks)) {
            \think\Log::error('参数不完整');
            return false;
        }
        $transferDetails = [
            [
                'out_detail_no'   => $detail_no, //商家明细单号
                'transfer_amount' => intval($money*100), //【转账金额】转账金额单位为“分”
                'transfer_remark' => $user['nickname'].date('Y-m-d').'提现'.$money.'元',//【转账备注】单条转账备注(微信用户会收到该备注)
                'openid'          => $user['openid1'], //【收款Openid】收款Openid
            ]
        ];
        // 构建请求参数
        $params = [
            'appid' => $config['wechat']['default']['miniapp_id'],
            'out_batch_no' => $order_no,
            'batch_name' => $remarks,
            'batch_remark' => date('Y-m-d')."提现,金额:".$money,
            'total_amount' => intval($money*100),
            'total_num' => 1,
            'transfer_detail_list' => $transferDetails,
        ];
        if (!empty($url)) {
            $params['notify_url'] = $url;
        }

        $result = Pay::wechat($config)->transfer($params);
        return $result;
    }

这步我因为我只需要做的是单笔不超过五百的提现功能,所以没有写transfer_detail_list 多条内容! 其实通俗点的理解就是,你需要转出去多少钱,然后同时转给几个人! 然后就在 transfer_detail_list 这个参数里面 拉个明细出来就好了! 这里还是按照我的实际情况走,还是就一笔哈! 需要修改的自行修改就行!   其次就是注意下$result = Pay::wechat($config)->transfer($params);  这个transfer()方法同时对应了 v2 和 v3 支付,但是v2 的接口实际情况下是已经失效了! 所以如果你在V2 的模式下调用 会报错!大概率会在  'appid' => $config['wechat']['default']['miniapp_id'],  这行报错!因为 在V2  的模式下的$config[配置和V3 不一样!

2.2 如何在  控制器中调用该方法!

先进行引用  微信支付 类

use addons\epay\library\Service as PayService;

 在_initialize 方法中 加入代码

set_addon_config('epay', ['version'=>'v3'], false);

 这个是关键转化点 把我们的微信支付从默认的 V2  转成 V3 

然后 在需要的方法中 直接 

 $tixian =   PayService::transfer($user,$order_no,$detail_no,$money,'测试提现');

调用即可! 至于返回了什么 自行参考文档吧!

跳转跳链 商家转账到零钱

 2.3 注意事项!

 在 微信支付中 产品 商家转账到零钱 页面中 找到  

API发起  下面的 

接口安全  把你的 ip 加入进去! 否则会报错! 

另外就是 支付证书是必须要上传的! 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值