手机版

PHP实现财务审核通过后返现金额到客户的功能

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

应用场景:

有这么一个返现的系统,当前端客户发起提现的时候,后端就要通过审核这笔返现订单,才可以返现到客户的账号里。

来看看下面的截图

这里的业务场景就是经过两轮审核:销售审核,财务审核都通过后,后端就会付款一笔钱到客户,当然,这里财务审核会有很多种情况,不通过与通过,通过后直接付款又有很多种情况,详细可以查看微信付款到零钱的文档。下面就来看看具体你的代码实现

微信支付配置

1,数据表大概如下

CREATE TABLE ` zmq _ weixin _ config `(` id ` int(1)无符号'非空自动增量注释'微信公众平台编号,自增id ',' weixin _ name ` varchar(10)NOT NULL COMMENT '微信公众平台名称“令牌”varchar(100)不为空、“应用程序标识”char(18)不为空、“应用程序机密”char(32)不为空、“访问令牌”varchar(300)不为空、“应用程序接口票证”varchar(300)默认为空注释”微信卡包' api_ticket ',' API _ ticket _ expired _ at ' datetime DEFAULT NULL COmment '微信卡包api _票证过期时间、` mchid ' varchar(20)DEFAULT空注释'商户号,` mchkey ` varchar(50)DEFAULT NULL COMMENT '支付密钥,`时间戳NULL DEFAULT NULL COMMENT ' access _ token的`过期时间过期时间,会自动更新,在“时间戳为空默认值为空注释”处更新记录更新时间,`创建于_时间戳为空默认值为空注释'创建时间, “sort _ order”小整数(5)不为空默认值“0”注释排序、` points _ URL ` varchar(100)DEFAULT NULL,PRIMARY KEY(` id `)ENGINE=MyISAM AUTO _ INCREMENT=11 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY _ KEY _ WRITE=1 ROW _ FORMAT=DYNAMIC COMMENT='微信配置表; 2 .配置的配置方法

/** * 获取微信支付配置* 这里我是把配置信息存储在数据表里,方便调用* $param是从控制器里传值过来:weixin_config_id,notify _ URL * @返回数组*/public函数得到微信配置($ param){ $ weixin=weixingbasemol : find($ param[' weixin _ config _ id ']);如果(空($ weixin)){ 0抛出新的异常('微信配置身份错误');}返回['微信=[ $app_id=$weixin-appid,' mch_id'=$weixin-mchid,' notify_url'=空($param['notify_url'])? $param['notify_url'],//回调url 'key'=$weixin-mchkey,' cert_client'=resource_path()./微信/'。$微信身份证./apiclient_cert.pem ',//证书与key 'cert_key'=resource_path()./微信/'。$微信身份证./apiclient_key.pem ',]];}企业付款到个人零钱核心代码

/** * 获取微信支付配置* 这里我是把配置信息存储在数据表里,方便调用* $param是从控制器里传值过来:weixin_config_id,notify _ URL * @返回数组*/public函数得到微信配置($ param){ $ weixin=weixingbasemol : find($ param[' weixin _ config _ id ']);如果(空($ weixin)){ 0抛出新的异常('微信配置身份错误');}返回['微信=[ $app_id=$weixin-appid,' mch_id'=$weixin-mchid,' notify_url'=空($param['notify_url'])? $param['notify_url'],//回调url 'key'=$weixin-mchkey,' cert_client'=resource_path()./微信/'。$微信身份证./apiclient_cert.pem ',//证书与key 'cert_key'=resource_path()./微信/'。$微信身份证./apiclient_key.pem ',]];}财务审核,也就是微信返现到零钱,这个时候会返回成功结果,或者是各种不成功的结果

这里我用一个方法封装

//财务审核if($param['status']==2){ //判断返现金额与修改后的金额if($ before _回扣_金额!=$param['回扣_金额']){ //返现金额不相等,则出款金额改变$out_amount=$param['回扣_金额]-$ before _回扣_金额;$ this-OutLook($ business-business _ id,$ out _ amount);} if($param['回扣_状态']==9){ //财务拒绝通过$business-audit_status=$param['回扣_状态'];$商务-回扣_金额=$param['回扣_金额'];$业务状态=6;$ business-save();//生成日志$ this-insertwitrawlog($param['取款_id'],$business-status,$business-audit_status,$ param['回扣_备注],$ param[' admin _ id ']);}else{ //提现的各种返回结果$ this-payReturnResult($ business,$ param);}}/** *函数:微信提现返回的各种结果*作者: cyw 0413 * @ param $ RES * @ param $ business * @ param $ param */公共函数payReturnResult($ business,$ param){ $ input=[' weixin _ config _ id '=20,' open id '=$ business-business-open _ id,' amount'=$param['回扣_amount'] * 100,' trade_no'=$business-order_sn,//商户订单号desc'='微信提现' ];$ pay=new PayLogBaseService();$ RES=$ pay-微信支付($ input);if($ RES[' result _ code ']==' SUCCESS '){//提现成功$ business-audit _ status=4;$业务-状态=4;$商务-回扣_金额=$param['回扣_金额'];$param['回扣_备注']='已付款('.$param['回扣_金额']。')';} else if($ RES[' err _ code ']==' MONEY _ LIMIT '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,已达到付款给此用户额度上限;//抛出新建\异常($param['回扣_备注']);} else if($ RES[' err _ code ']==' AMOUNT _ LIMIT '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,低于最低付款金额或者高于最高付款金额;//抛出新建\异常($param['回扣_备注']);egdf } else if($ RES[' err _ code ']==' NOTENOUGH '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,付款帐号余额不足或资金未到账;//抛出新建\异常($param['回扣_备注']);} else if($ RES[' err _ code ']==' SIGN _ ERROR '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,签名错误;} else if($ RES[' err _ code ']==' PARAM _ ERROR '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,参数错误;} else if($ RES[' err _ code ']==' OPENID _ ERROR '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,Openid错误;} else if($ RES[' err _ code ']==' FATAL _ ERROR '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,两次请求参数不一致;} else if($ RES[' err _ code ']==' CA _ ERROR '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,商户应用程序接口证书校验出错;} else if($ RES[' err _ code ']=' V2 _ ACCOUNT _ SIMPLE _ BAN '){ $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,无法给非实名用户付款;} else { $ business-audit _ status=3;$业务-状态=3;$param['回扣_备注']='提现失败,服务器繁忙,请稍后再试;//抛出新建\异常($param['回扣_备注']);} $ business-save();}当微信平台余额不足或者出现各种错误而提现失败的时候,这里还有支持重新付款的功能:其实就是点击按钮后重新调用付款到零钱的功能,知道成功付款

/* * * function : re payment * author : cyw 0413 * @ param $ param * @抛出\ exception */public function return($ param){ if(empty($ param)){ throw new \ exception('错误的参数');} $ business=group business withrawbasemodel : find($ param[' retract _ id ']);If(空($ business)){ thrownnew \ exception('不存在!');} if($business-audit_status!=3) {Thrownnew \ exception('状态错误');}//取现的各种返回结果$ this-payreturn result($ business,$ param);}摘要

以上就是PHP向大家介绍的实现财务审计通过后返现给客户的功能。希望对你有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

版权声明:PHP实现财务审核通过后返现金额到客户的功能是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。