全部
常见问题
产品动态
精选推荐

PHP商城项目开发中实现微信提现到零钱功能详解

管理 管理 编辑 删除

前言

在微信公众号/小程序商城项目中,经常会遇到佣金、余额提现的需求,那么在微信商城项目中,怎么实现让用户微信提现到零钱这个功能?相信很多同学都遇到了这个问题,具体开发过程中怎么解决这个问题,请看小编给大家带来的微信提现方法介绍,希望对您有所帮助!

第一步:使用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);
那么配置的具体选项有哪些,下面是一个完整的列表:
 '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完成提现到零钱功能(企业付款到零钱)

你在阅读本文之前确认你已经仔细阅读了:微信支付 | 企业付款文档

与其他支付接口一样,企业支付接口也需要配置如下参数,需要特别注意的是,企业支付相关的全部接口 都需要使用 SSL 证书,因此 cert_path 以及 cert_key 必须正确配置。

 '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;

企业付款

企业付款使用的余额跟微信支付的收款并非同一账户,请注意充值。

 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);


徐斗明 最后编辑于2022-11-14 09:21:03

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
回复从新到旧

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
{{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
2344
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

CRMEB-慕白寒窗雪 作者
社区运营专员---高冷のBoy | 呆萌のGirl

回答

1919

发布

1766

经验

43235

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 开源下载 CRMEB官方论坛 帮助文档
返回顶部 返回顶部
CRMEB客服