当前位置: 首页 > 后端技术 > PHP

PHP项目微信提现功能代码详解

时间:2023-03-29 21:07:39 PHP

第1步:使用composer安装EasyWeChathttps://www.easywechat.com/docs/3.x/installation第2步:我们之前说过,初始化时的方法SDK只需要创建一个EasyWeChat\Foundation\Application的实例:useEasyWeChat\Foundation\Application;$options=[//...];$app=newApplication($options);/***如果你想实例化Application之后修改某个option的值,*比如服务商+子商户支付回调场景下,所有子商户订单支付信息都是通过同一个服务商的$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,//超时(秒)],];第三步:使用易信完成取现找零功能(企业支付找零)。阅读本文前,您必须确认您已仔细阅读:https://pay.weixin.qq.com/wik...与其他支付接口一样,企业支付接口也需要配置以下参数。需要注意的是,所有与企业支付相关的接口都需要使用SSL证书,所以必须正确配置cert_path和cert_key。'your-app-id',//支付'payment'=>['merchant_id'=>'your-mch-id','key'=>'key-for-signature','cert_path'=>'path/to/your/cert.pem','key_path'=>'path/to/your/key',//...],];$app=newApplication($选项);$merchantPay=$app->merchant_pay;企业支付企业支付使用的余额与微信支付收到的款项不是同一个账户,请注意充值。str_random(16),//随机字符串作为订单号,这是一个红包和支付的概念。'openid'=>$openid,//收款人的openid'check_name'=>'NO_CHECK',//验证文件中的真实姓名的三种方式NO_CHECKOPTION_CHECKFORCE_CHECK're_user_name'=>'张三',//OPTION_CHECKFORCE_CHECKmustsubmit'amount'=>100,//单位是分'desc'=>'企业支付','spbill_create_ip'=>'192.168.0.1',//发起交易的IP地址];$result=$merchantPay->发送($merchantPayData);查询支付信息用于商户查询已发出的企业支付的具体信息。$partnerTradeNo="商家系统内的订单号(partner_trade_no)";$merchantPay->query($partnerTradeNo);知识付费系统微信功能基础类extend\service\WechatService;根据文档,我们在WechatService类接口中添加企业支付,接口名称为merchantPayService,如果存在则无需添加;/***企业支付*@return\EasyWeChat\Material\Material*/publicstaticfunctionmerchantPayService(){returnself::application()->merchant_pay;然后我们只需要调用merchantPayService方法中的send方法,传入我们转账的参数即可。我们需要添加提现审核通过后执行的函数。管理员\模型\用户\用户提取;在这个类中找到changeSuccess方法,就是通过审核后的相关操作。(1).首先介绍WechatService;使用服务\微信服务;(2).在changeSuccess方法中添加如下代码,根据最终返回判断企业支付是否成功。$payData=['partner_trade_no'=>str_random(16),//随机字符串作为订单号,与红包和支付是同一个概念。'openid'=>$openid,//收款人的openid'check_name'=>'NO_CHECK',//验证文件中的真实姓名的三种方式NO_CHECKOPTION_CHECKFORCE_CHECK're_user_name'=>'张三',//OPTION_CHECKFORCE_CHECKmustsubmit'amount'=>100,//单位是分'desc'=>'企业支付','spbill_create_ip'=>'192.168.0.1',//发起交易的IP地址];$result=WechatService::merchantPayService()->发送($payData);最后,如果您觉得这篇文章对您有用,请给我们的开源项目一个小星星:http://github.crmeb.net/u/defu不胜感激!免费源码地址:http://www.crmeb.comPHP学习手册:https://doc.crmeb.com技术交流论坛:https://q.crmeb.com