php关于支付宝、微信退款操作

“`//支付宝退款接口公共函数return_ali(贸易_没有){要求_一次( '../延伸/ alipaywap / config.php中'); require _ once('../延伸/ alipaywap / pagepay /服务/ AlipayTradeService.php'); require _ once('../延伸/ alipaywap / pagepay / buildermodel / AlipayTradeRefundContentBuilder.php'); //商户订单号,商户网站订单系统中唯一订单号// Ò ù ř 一个d ë Ñ ø = ř 中号 _ POST [ 'WIDTRout _ _贸易没有']); Ò ù ř 一个d o u t t r a d e n o o u t t r a d e n o = t r i m out _ trade _ no; //支付宝交易号// $ o u t t r a d e n o =

    trade_no = trim($ _ POST ['WIDTRtrade_no']); $ trade_no = $ trade _ no; //请二选一设置//需要退款的金额,该金额不能大于订单金额,必填$ refund _ amount ='0.01'; // $ refund_reason = trim($ _ POST ['WIDTRrefund_reason']); $ refund_reason ='测试'; //标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传// $ out_request_no = trim($ _ POST ['WIDTRout_request_no']); $ out_request_no ='TK'.time(); //构造参数$ RequestBuilder = new \ AlipayTradeRefundContentBuilder(); $ RequestBuilder-> setOutTradeNo($ out_trade_no); $ RequestBuilder-> setTradeNo($ trade_no); $ RequestBuilder-> setRefundAmount($ REFUND_AMOUNT); $ RequestBuilder-> setOutRequestNo($ out_request_no); $ RequestBuilder-> setRefundReason($ REFUND_REASON); $ aop = new \ AlipayTradeService($ config); 

RequestBuilder); 响应); // a = g e t o b j e c t v a r s

a = a r r a y response); // print_r( a ; a; } //订单退款public function return_order(){if(Request :: instance() - > isPost()){ m e m b e r = this-> checklogin(); o r d e r m e r c h a n t s i d = i n p u t o r d e r m e r c h a n t s i d ; i f order 商人 id)错误(“请选择订单”); w h e r e = [ o r d e r m e r c h a n t s i d => order _ merchants _ id,//’member _ id’=> m e m b e r [ m e m b e r i d ] ] ;

        order _ merchants = Db :: name('order _ merchants') - > where($ where) - > find(); if($ order _ merchants ['order _ state']!='wait_send'){error(“退款状态不符合,请选择售后服务”); } if(time() -  strtotime($ order _ merchants [ 'pay _ time' ])> $ this->









        } $ pay_charge = json_decode($ order _ merchants ['pay _ charge'],true); require_once“../延伸/ WX / LIB / WxPay.Api.php”; if(isset($ order_merchants [“ping_no”])&& $ order _ merchants [“ping _ no”]!=“”){$ transaction_id = $ order _商人[“ping _ no”]; $ total_fee ='1'; $ refund_fee ='1';










                    $ input = new \ WxPayRefund(); $输入 - > SetTransaction_id($ TRANSACTION_ID); $输入 - > SetTotal_fee($ total_fee); $输入 - > SetRefund_fee($ refund_fee); $输入 - > SetOut _ refund _ no(\ WxPayConfig :: MCHID.date(“YmdHis”)); $输入 - > SetOp_user_id(\ WxPayConfig :: MCHID); $ result = \ WxPayApi :: refund($ input); 的的的的print_r($结果); //出口(); } if($ result ['result_code'] =='SUCCESS'&& $ result ['return_code'] =='SUCCESS'){Db :: name('order _ merchants') - > where(['order _ merchants _ id'=> $ order _ merchants _ id]) - > update(['order _ state'=>'return']); $ order = Db :: name('order') - > if($ order ['coupon_ids'                             $ order_state = ['return',' 取消'];                             foreach($ order as $ v){

















                            if(in_array($ v,$ order_state)){ 
                                $ is_return ='1'; 
                            } else { 
                                $ is_return ='2'; 
                                打破; 
                            } 
                        } 
                        如果($ is_return == '1'){ 
                            DB ::名称( '构件_优惠券') - >其中([ 'ID'=> $顺序[ '优惠券_ IDS']]) - >更新([ '状态'=> '1']); 成功(“退款成功”); } else {error(“退款失败”); } // $ _ REQUEST [“out _ trade_no”] =“122531270220150304194108”; /// $ _ REQUEST [“total _ fee”] =“1”; // $ _ REQUEST [“refund _ fee”] =“1”; 

])&&“pay _ no” ]!=“”){ // o u t t r a d e n o = order _ merchants [ “pay _ no” ] ; // t o t a l f e e = 1 ; / / input = new \ WxPayRefund(); // i n p u t > S e t O u t t r a d e n o out _ trade _ no); // i n p u t > S e t T o t a l f e e total_fee); // i n p u t > S e t R e f u n d f e e refund_fee); // i n p u t > S e t O u t r e f u n d n o   W x P a y C o n f i g :: M C H I D . d a t e Y m d H i s ; / / input-> SetOp _ user _ id(\ WxPayConfig :: MCHID); // print_r(\ WxPayApi :: refund( input)); //出口(); //}休息案例'微信扫码':require_once“../ extend / wxpub / lib / WxPay.Api.php”; if(isset( order_merchants [“ping_no”])&& order_merchants [“ping_no”]!=“”){ transaction_id = o r d e r m e r c h a n t s [ p i n g n o ] ; total_fee ='1'; r e f u n d f e e = 1 ; input = new \ WxPayRefund(); > S e t T r a n s a c t i o n i d TRANSACTION_ID); > S e t R e f u n d f e e refund_fee); > S e t O u t r e f u n d n o   W x P a y C o n f i g :: M C H I D . d a t e Y m d H i s ; 输入 - > SetOp_user_id(\ WxPayConfig :: MCHID); // print_r(\ WxPayApi :: refund($ input));

                    //出口(); 如果($结果['RESULT_CODE'] =='成功'&& $结果['值值return_code'] =='成功'){DB ::名称('order_merchants') - >其中(['order_merchants_id'=> $ order_merchants_id]) - > update(['order_state'=>'return']); $ order = Db :: name('order') - > where(['order_id'=> $ order_merchants ['order_id']]) - > find(); if($ order ['coupon_ids']){$ order = Db :: name('order_merchants') - > where(['order_id'=> $ order_merchants ['order_id']]) - > column('order_state') ;                             $ order_state = ['return','cancel']; $ is_return ='1'; } else {$ is_return ='2'; 打破; 如果($ is_return =='1'){DB ::名称('构件_优惠券') - > 其中(['ID'=> $顺序['优惠券_ IDS']]) - >更新(['状态'=>'1']); 成功(“退款成功”); } else {





















                    error(“退款失败”);                     打破;                 case'支付宝APP支付':                    $ result = $ this-> return_ali($ order_merchants ['pay_no'],$ order_merchants ['ping_no']);                     if($ result ['code'] =='10000'&& $ result ['msg'] =='Success'){                         Db :: name('order_merchants') - > where(['order_merchants_id'=> $ order_merchants_id ]) - > update(['order_state'=>'return']);                         $ order = Db :: name('order') - > where(['order_id'=> $ order_merchants ['的order_id']]) - >








                        $ order = Db :: name('order_merchants') - > where(['order_id'=> $ order_merchants ['order_id']]) - > column('order_state'); 
                        $ order_state = ['return','cancel']; 
                        foreach($ order as $ v){ 
                            if(in_array($ v,$ order_state)){ 
                                $ is_return ='1'; 
                            } else { 
                                $ is_return ='2'; 
                                打破; 
                            } 
                        } 
                        如果($ is_return == '1'){ 
                            DB ::名称( '构件_优惠券') - >其中([ 'ID'=> $顺序[ '优惠券_ IDS']]) - >更新(['状态'=>'1']);                         成功(“退款成功”);                         错误( “退款失败”);







            case'支付宝扫码支付':
                $ result = $ this-> return_ali($ order_merchants ['pay_no'],$ order_merchants ['ping_no']); 
                if($ result ['code'] =='10000'&& $ result ['msg'] =='Success'){ 
                    Db :: name('order_merchants') - > where(['order_merchants_id'=> $ order _商家_ id]) - >更新(['order _ state'=>'return']); $ order = Db :: name('order') - > where(['order_id'=> $ order _ merchants ['order _ id']]) - > find(); if($ order ['coupon_ids']){$ order = Db :: name('order_merchants') - > where(['order_id'=> $ order _商家['order _ id']]) - > column('order_state');                             foreach($ order as $ v){                                 if(in_array($ v,$ order_state)){






                                $is_return = '1';
                            } else {
                                $is_return = '2';
                                break;
                            }
                        }
                        if ($is_return == '1'){
                            Db::name('member_coupon')->where(['id'=>$order['coupon_IDS ']]) - >更新(['状态'=>' 1' ]); 
                        } 
                    } 
                    成功(“退款成功”); 
                } else { 
                    error(“退款失败”); 
                } 
                // print_r($ result);退出; 
                打破; 
            默认值:#code 
                ... 

打破; ““

猜你喜欢

转载自blog.csdn.net/qq_29202427/article/details/80334189