第三方代付(提现)秒到 {畅捷代付}

帮老板 客户做的 提现秒到  用到的 第三方平台 畅捷,这个平台 是老板客户自己找的。

首先看了一下文档 感觉 不难,由于写完很久了才想起写博客 详细过程记不清了 大概说一下  下面 我就直接贴代码 供你们参考吧

说一下步骤,1 首先你要生成 提现的 订单 见图片是我生成的订单

                       2. 提现生成订单时查一下 畅捷账户的余额 够不够用户提现的 不够 return ,够提现继续

                      3 生成订单的同事 调用  agent($money,$orderNo) 方法 把提现金额 跟生成的订单号 传过去 这时 提现到没到用户手中 属于未知状态,下面再写一个查询畅捷提现 是否成功的接口

        4 查询 提现是否成功接口 searchPay($orderNo)把订单传过去

        5 利用linux 定时 chanPay() 每5分钟 查一次 上面 4步骤 的接口 如果成功返回状态 如果失败了 要把钱退回到用户账户的账户里

具体 看下面代码吧 耐心看 都能写通。

     public function tx()  //提现生成订单  同时调用 畅捷接口{$money = input('money', '');$type = input('type', 'total_money'); // total_money 为除分润余额 //share_money 为分润余额$user = app()->user;$chan_data = $this->balance();   //这调用畅捷接口 查一下 畅捷 账户里的余额 够不够提现if ($chan_data['PayBalance'] < $money){return Y::json(1,'畅捷平台余额不足');}$real = Db::table('user')->where('id', $user['id'])->value('real');if ($real == 0) {return Y::json(1, '实名认证后才能提现');}if ($real == 2) {return Y::json(3, '您已上传认证信息,请耐心等待');}$n = Db::table('mach')->where('user_id', $user['id'])->count();if ($n <= 0) {return Y::json(1, '必须购买过机具才能提现');}$status = Db::table('repay')->where('user_id', $user['id'])->order('id', 'desc')->value('status');if (isset($status)) {if ($status == 0) {return Y::json(1, '未还款不能提现');}}$bank_address = Db::table('user')->where('id', $user['id'])->value('bank_address');if (empty($bank_address)) {return Y::json(1, '绑定开户行地址后方可提现');}$info = Cache::store('redis')->get($user['id'] . 'tx');if (!empty($info)) {return Y::json(1, '每天只能提现一次');}$data = Db::table('tx_set')->find();if ($type == 'total_money') {if ($money < $data['min_tx']) {  // 除分润提现限制return Y::json(1, "提现金额至少" . $data['min_tx']);}} else {if ($money < $data['share_tx']) {   //分润提现限制return Y::json(1, "提现金额至少" . $data['share_tx']);}}if ($type == 'total_money') {$ye = Db::table('purse')->where('user_id', $user['id'])->order('id', 'desc')->value('total_money');//申请提现金额 大于余额 returnif ($money > $ye) {return Y::json(1, "可提余额不足");}} else {$ye = Db::table('purse')->where('user_id', $user['id'])->order('id', 'desc')->value('share_money');//申请提现金额 大于余额 returnif ($money > $ye) {return Y::json(1, "可提余额不足");}}//提现时间限制$t1 = strtotime(date('Y-m-d H:i:s'));$t2 = strtotime(date("Y-m-d 00:00:00", strtotime("+1 day")));$time = $t2 - $t1;Cache::store('redis')->set($user['id'] . 'tx', 'tx', $time);// 税款if ($type == 'total_money') {$tax_money = $money * $data['lv'];} else {$tax_money = $money * $data['share_lv'];}//申请提现金额 -税款 = 应提金额$tx_money = bcsub($money, $tax_money, 2);//提现金额小于500扣2块手续费if ($money < 500) {$charge = 2;$tx_money = bcsub($tx_money, $charge, 2);} else {$charge = 0;}//申请提现后 剩余的 余额$total_ye = bcsub($ye, $money, 2);$orderNo = time() + mt_rand(2,50);if ($type == 'total_money'){Db::table('tx')->where('user_id', $user['id'])->insert(['user_id'=>$user['id'],'money' => $money,'charge' =>$charge,'tx_money' =>$tx_money,'create_time' =>date('Y-m-d H:i:s'),'operator'=>'畅捷支付','orderNo'=> $orderNo,'type' =>1,]);$share_money =Db::table('purse')->where('user_id', $user['id'])->order('id', 'desc')->value('share_money');Db::table('purse')->insert(['user_id' => $user['id'],'total_money' => $total_ye,'share_money' => $share_money,'tx' => $money,'trade_time' => date('Y-m-d H:i:s'),'create_time' => date('Y-m-d H:i:s')]);}else{Db::table('tx')->where('user_id', $user['id'])->insert(['user_id'=>$user['id'],'share_money' => $money,'charge' =>$charge,'tx_money' =>$tx_money,'create_time' =>date('Y-m-d H:i:s'),'operator'=>'畅捷支付','orderNo'=> $orderNo,'type' =>2,]);$total_money =Db::table('purse')->where('user_id', $user['id'])->order('id', 'desc')->value('total_money');Db::table('purse')->insert(['user_id' => $user['id'],'total_money' => $total_money,'share_money' => $total_ye,'share_tx' => $money,'trade_time' => date('Y-m-d H:i:s'),'create_time' => date('Y-m-d H:i:s')]);}$result = $this->agent($tx_money, $orderNo);if (!isset($result['OriginalRetCode'] ) ){return Y::json(1,'系统错误',$result);}elseif($result['OriginalRetCode'] == '000001'){return Y::json(0,'提现成功,处理中',$result);}}//畅捷提现public function agent($money,$orderNo){$user = app()->user;$rsa = new \rsasc();$comm = new \comm();$postData = $needEncryptData = array();$needEncryptData['AcctNo'] = $user['bank_card']; //对手人账号$needEncryptData['AcctName'] = $user['nickname'];//对手人姓名
//        $needEncryptData['AcctNo'] = '622203***0868223'; //对手人账号
//        $needEncryptData['AcctName'] = '付振卓';//对手人姓名$needEncryptData = $rsa->publicRsaSign($needEncryptData);$postData['Service'] = 'cjt_dsf';$postData['Version'] = '1.0';$postData['PartnerId'] = '200*****410';//商户号$postData['TradeDate'] = date('Ymd') . '';$postData['TradeTime'] = date('His') . '';$postData['InputCharset'] = 'UTF-8';$postData['TransCode'] = "T10000"; //功能码$postData['OutTradeNo'] = $orderNo; //外部流水号
//        $postData['OutTradeNo'] = time(); //外部流水号$postData['BusinessType'] = '0';//业务类型 0私人 1公司$postData['BankCommonName'] = $user['bank_name'];// 通用银行名称
//        $postData['BankCommonName'] = '中国工商银行';// 通用银行名称//$postData['BankCode'] = 'CCB';//对公必填$postData['AccountType'] = '00';//账户类型 00借记卡 01贷记卡$postData['Currency'] = 'CNY';$postData['TransAmt'] = $money;//交易金额$postData['CorpPushUrl'] = 'http://39.98.165.44';//商户推送的URL地址$postData['PostScript'] = '提现';//交易金额$postData = array_merge($postData, $needEncryptData);$postData['Sign'] = $rsa->rsaSign($postData);$postData['SignType'] = 'RSA'; //签名类型$query = http_build_query($postData);$url = 'https://pay.chanpay.com/mag-unify/gateway/receiveOrder.do?' . $query;$cfg = array('ssl' => true);
//        echo '<meta charset="utf-8">';$response = $comm->curlOpen($url, $cfg);$data = json_decode($response);$data = ArrayHelp::object2array($data);return $data;}//畅捷查询订单状态public function searchPay($orderNo){$rsa = new \rsasc();$comm = new \comm();$postData = $needEncryptData = array();$needEncryptData = $rsa->publicRsaSign($needEncryptData);$postData['Service'] = 'cjt_dsf';$postData['Version'] = '1.0';$postData['PartnerId'] = '20000***0410';$postData['TradeDate'] = date('Ymd') . '';$postData['TradeTime'] = date('His') . '';$postData['InputCharset'] = 'UTF-8';$postData['TransCode'] = "C00000"; //功能码$postData['OutTradeNo'] = time() + mt_rand(2,50); //外部流水号$postData['OriOutTradeNo'] = $orderNo; //原交易单号$postData = array_merge($postData, $needEncryptData);$postData['Sign'] = $rsa->rsaSign($postData);$postData['SignType'] = 'RSA'; //签名类型
//      print_R($postData);$query = http_build_query($postData);$url = 'https://pay.chanpay.com/mag-unify/gateway/receiveOrder.do?' . $query;$cfg = array('ssl' => true);$response = $comm->curlOpen($url, $cfg);$data = json_decode($response);$data = ArrayHelp::object2array($data);return $data;}//畅捷余额查询public function balance(){$rsa = new \rsasc();$comm = new \comm();$postData = $needEncryptData = array();
//        $needEncryptData['AcctNo'] = 'xxx'; //用户id
//        $needEncryptData['AcctName'] = 'xxx';$needEncryptData = $rsa->publicRsaSign($needEncryptData);$postData['Service'] = 'cjt_dsf';$postData['Version'] = '1.0';$postData['PartnerId'] = '200***0410';$postData['TradeDate'] = date('Ymd') . '';$postData['TradeTime'] = date('His') . '';$postData['InputCharset'] = 'UTF-8';$postData['TransCode'] = "C00005"; //功能码$postData['OutTradeNo'] = time() + mt_rand(2,50); //外部流水号$postData = array_merge($postData, $needEncryptData);$postData['Sign'] = $rsa->rsaSign($postData);$postData['SignType'] = 'RSA'; //签名类型$query = http_build_query($postData);$url = 'https://pay.chanpay.com/mag-unify/gateway/receiveOrder.do?' . $query;$cfg = array('ssl' => true);
//        echo '<meta charset="utf-8">';$response = $comm->curlOpen($url, $cfg);$data = json_decode($response);$data = ArrayHelp::object2array($data);//        return Y::json(1,'余额查询成功',$data) ;return $data ;}//每5分钟linux定时查询10分钟以前提现订单是否成功public function chanPay(){$timer=strtotime('now');$timer=$timer - 15 * 60;$time = date('Y-m-d G:i:s',$timer);//查询10分钟以前 提现订单是否成功$data = Db::table('tx')->where('status',0) ->whereTime('create_time', 'today')->whereTime('create_time','<',$time)->select();foreach ($data as $val){//调用查询接口$order_data = $this->searchPay($val['orderNo']);// 如果是6个0 则 是成功状态if (isset($order_data['OriginalRetCode'])  =='000000'){$result = Db::table('tx')->where('orderNo',$val['orderNo'])->update(['audit_time'=>date('Y-m-d H:i:s'),'status'=>1]);}else{//如果失败  钱包里的钱 退回Db::table('tx')->where('orderNo',$val['orderNo'])->update(['audit_time'=>date('Y-m-d H:i:s'),'status'=>2]);$tx_data = Db::table('tx')->where('orderNo',$val['orderNo'])->find();if ($tx_data['type'] == 1){ //除分润提现$purse = Db::table('purse')->where('user_id',$tx_data['user_id'])->order('id','desc')->find();$total_money = bcadd($purse['total_money'],$tx_data['money'],2);$result =  Db::table('purse')->where('user_id',$tx_data['user_id'])->insert(['user_id'=>$tx_data['user_id'],'back' => $tx_data['money'],'total_money'=>$total_money,'share_money' =>$purse['share_money'],'trade_time' =>date('Y-m-d H:i:s'),'create_time' =>date('Y-m-d H:i:s'),]);}else{ //分润提现$purse = Db::table('purse')->where('user_id',$tx_data['user_id'])->order('id','desc')->find();$share_money = bcadd($purse['share_money'],$tx_data['share_money'],2);$result = Db::table('purse')->where('user_id',$tx_data['user_id'])->insert(['user_id'=>$tx_data['user_id'],'back' => $tx_data['share_money'],'total_money'=>$purse['total_money'],'share_money' =>$share_money,'trade_time' =>date('Y-m-d H:i:s'),'create_time' =>date('Y-m-d H:i:s'),]);}}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34768.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计开发-API代付系统/自动代付系统

设计开发-API代付系统/自动代付系统 什么是代付系统&#xff1f; 我这样给大家说&#xff0c;大家就很容易明白了。以前&#xff0c;我们在运营平台的时候是不是会遇到大量会员提现&#xff0c;如果我们一个一个手动给会员转账&#xff0c;这样就非常的繁琐&#xff0c;提现数…

paypal支付对接(付款方式:即时付款、快速付款):PC端支付、APP端支付,异步回调IPN

2021年&#xff1a; 最近又有国外项目需要接入paypal&#xff0c;这次准备使用官方最新的SDK&#xff1a; PayPal REST SDKs 先跑个官方DEMO热热身&#xff0c;创建订单后返回了4个地址&#xff0c;目前只知道approve是支付链接&#xff0c;直接浏览器跳转支付即可。问题是异…

App中 微信分享 代付功能 业务设计 与 代码实现

先上图 场景 本例的代付场景是&#xff0c;开发一款APP应用&#xff0c;APP中具有支付能力&#xff0c;按照微信 支付对接要求已经完成APP支付的对接。现在要玩点新花样&#xff0c;找人代付订 单。用户在APP中下单后选择找人代付&#xff0c;将分享H5页面到微信中的好 友。好…

代付系统/代付系统源码/支付宝代付系统/API代付系统

简介&#xff1a; 其他站买的&#xff0c;没有做测试&#xff0c;源码是JAVA的&#xff0c;附带了安装文档&#xff0c;需要的拿无售后 源码下载地址https://www.skpan.cn/2QnIARSZDxG 代付系统/代付系统源码/支付宝代付系统/API代付系统 系统流程: 后台开通代理——开通商户…

代付系统开发(搭建)【支付宝自动代付】

本系统独立自主研发&#xff0c;集收付款一体&#xff0c;支持对接第4方。多年支付风险控制经验确保系统安全稳定运行。 【全自动代付系统开发UI和搭建思路及优化】 本系统提供多种支付通道但仅演示当前能稳定使用的通道&#xff0c;并保证交付源码与演示一致。后续因官方问题…

微信支付——委托代扣介绍

目录 1、定义 2、应用场景 3、申请条件 *基础条件 *资质条件 4、业务类型说明 5、开通流程 6、支付中签约 7、签约后支付 8、服务商开通样例 由于委托代扣开通需要较高的权限&#xff0c;有其他问题可私聊小编或进Q群交流&#xff1a;565014741&#xff0c;看到您的留…

代扣代收 VS 代付代发

陆续的也提过一些支付领域的概念和词汇,“代扣/代收,代付/代发”这四个专业名词确实不容易让人理解和区分,说者和听者容易搞混,今天换个思路学习下。 1. 两类账户 对于银行来说,账户种类繁琐:公司的,个人的,一类账户,二类账户,存储账户,借贷账户,等等。对于我们理…

第三方支付和代付区别在哪?

对于分账和代付两个词汇&#xff0c;对于许多电商平台经营者来说并不陌生。但要深入研究&#xff0c;却鲜少有人知道这两个词汇的区别。 代付 代付分为第三方支付公司代付和银行代付&#xff1a; 第三方支付公司代付。 对于绝大部分电商平台都会有代付的需求。如收取用户资…

微信支付代付通道开通流程

提供企业向用户付款的功能&#xff0c;支持企业通过API接口付款&#xff0c;或通过微信支付商户平台网页功能操作付款。 开通 开通条件&#xff1a; 1、商户号已入驻90日 2、商户号有30天连续正常交易 3、 登录微信支付商户平台-产品中心&#xff0c;开通企业付款。 充值 登录微…

涉及到第三方支付接口该如何测试?

现在有不少测试朋友做的项目中&#xff0c;可能也会涉及到支付相关的功能。比如&#xff1a;做商城的&#xff0c;做游戏的以及其他在线交易的网站、APP等。如果支付出了问题&#xff0c;或者用户拿少的钱通过篡改请求数据购买大金额的商品&#xff0c;如果是实物的话&#xff…

好友代付系统

心血来潮&#xff0c;和大家分享一个我同学正在操作的项目。收益不输金领&#xff0c;令人艳羡&#xff0c;让我给大伙讲讲我这个同学做什么项目。 这位同学做的事仿制美团饿了么平台的好友代付系统&#xff0c;虚拟经营。当然也可以实体经营&#xff0c;线下经营。只不过二者差…

AI仿写软件-仿写文章生成器

AI仿写软件&#xff1a;高效出色的营销利器 作为互联网时代的营销人员&#xff0c;我们不仅需要品牌意识&#xff0c;还必须深谙营销技巧。万恶的时限压力使得我们不得不在有限的时间内输出更多的文本内容&#xff0c;以便吸引更多的关注。那么&#xff0c;如何解决这个问题呢…

chatgpt赋能python:Python和Selenium在SEO中的应用

Python和Selenium在SEO中的应用 在当今的数字时代&#xff0c;搜索引擎优化已成为所有在线业务的必要部分。随着业务的发展和市场的需求&#xff0c;如何将网站的排名提高至关重要&#xff0c;SEO已成为每个网站所有者的标配。 Python作为一种强大的脚本语言&#xff0c;可以…

算力分析及相关查询网站

1、FLOPS定义 FLOPS是“每秒所执行的浮点运算次数”&#xff08;floating-point operations per second&#xff09;的缩写。它常被用来估算电脑的执行效能&#xff0c;尤其是在使用到大量浮点运算的科学计算领域中。 在这里所谓的“浮点运算”&#xff0c;实际上包括了所有涉…

Chiplet:大算力的翅膀

作者简介&#xff1a;Erick.X&#xff0c;复睿微首席架构专家。 Chiplet 概述 过去几十年来&#xff0c;半导体行业一直按照摩尔定律的规律发展&#xff0c;凭借着芯片制造工艺的迭代&#xff0c;使得每18个月芯片性能提升一倍。但是当工艺演进到5nm&#xff0c;3nm节点&…

ChatGPT 也解决不了 “老婆和老妈掉河里先救谁” 的难题?

据网络报道&#xff0c;4月26日&#xff0c;中国政法大学刑事司法学院教授罗翔在华南师大附中公开讲座&#xff0c;提到当下很火的ChatGPT&#xff0c;罗翔说&#xff1a;“很多人都跟我说&#xff0c;你现在要开始学习ChatGPT&#xff0c;否则2年以后就会被淘汰。我当然也开始…

任正非接受采访首谈ChatGPT:我跟大家看法,有些不一样...

近日&#xff0c;任正非在接受采访时说&#xff1a;“ChatGPT对我们的机会是什么&#xff1f;它会把管道流量撑大&#xff0c;这样我们的5G产品就有市场需求。” 任总还强调&#xff1a;“今后职场上只有两种人&#xff0c;一种是熟练使用AI的人&#xff0c;另一种是创造AI工具…

用强化学习玩《超级马里奥》

Pytorch的一个强化的学习教程&#xff08; Train a Mario-playing RL Agent&#xff09;使用超级玛丽游戏来学习双Q网络(强化学习的一种类型)&#xff0c;官网的文章只有代码&#xff0c; 所以本文将配合官网网站的教程详细介绍它是如何工作的&#xff0c;以及如何将它们应用到…

新功能提醒:Midjourney v5.2 已发布!

您准备好踏上艺术与人工智能相遇的视觉之旅了吗&#xff1f;介绍 Midjourney V5.2&#xff0c;这是突破性 AI 艺术工具的最新版本&#xff0c;只需一个文本提示即可将您的想象力变为现实。凭借其卓越的功能和一系列新功能&#xff0c;Midjourney V5.2彻底改变了您轻松创建令人惊…

拉上谷歌高通 三星围攻苹果

时隔4年&#xff0c;三星又在VR领域出手了。 在几天前的新品发布会上&#xff0c;三星宣布正在开发新的XR&#xff08;扩展现实&#xff09;产品和体验&#xff0c;为提高产品竞争力&#xff0c;三星找来了谷歌和高通两大“帮手”&#xff0c;前者提供生态系统和软件支持&…