“`//支付宝退款接口公共函数return_ali(贸易_没有){要求_一次( '../延伸/ alipaywap / config.php中'); require _ once('../延伸/ alipaywap / pagepay /服务/ AlipayTradeService.php'); require _ once('../延伸/ alipaywap / pagepay / buildermodel / AlipayTradeRefundContentBuilder.php'); //商户订单号,商户网站订单系统中唯一订单号// Ò ù 吨吨 ř 一个d ë Ñ ø = 吨ř 我中号( _ POST [ 'WIDTRout _ _贸易没有']); Ò ù 吨吨 ř 一个d Ø ü ŤŤ[R一个dËño , o u t t r a d e n o , outtradeno=trim( o u t t r a d e n o = t r i m ( out _ trade _ no; //支付宝交易号// $ Ø ü ŤŤ[R一个dËño = 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Øb je c tv一[Rs ( a = g e t o b j e c t v a r s (
a = a r[R一个y ( 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= m e m b e r = this-> checklogin(); o rde r米e rÇ ħ 一个Ñ 吨小号一世d= 我Ñ p ù 吨(“o rde r米e rÇ ħ 一个Ñ 吨小号一世d“) ; 我˚F(! 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 è [Re = [“o rde r米e rÇ ħ 一个Ñ 吨小号一世d“= > 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’=> member[′memberid′],]; 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” ]!=“”){ // Ø ü ŤŤ[R一个dËño = o u t t r a d e n o = order _ merchants [ “pay _ no” ] ; // totalfee=′1′;// t o t a l f e e = ′ 1 ′ ; / / input = new \ WxPayRefund(); // input−>SetOuttradeno( i n p u t − > S e t O u t t r a d e n o ( out _ trade _ no); // input−>SetTotalfee( i n p u t − > S e t T o t a l f e e ( total_fee); // input−>SetRefundfee( i n p u t − > S e t R e f u n d f e e ( refund_fee); // input−>SetOutrefundno( WxPayConfig::MCHID.date(“YmdHis”));// 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( input)); //出口(); //}休息案例'微信扫码':require_once“../ extend / wxpub / lib / WxPay.Api.php”; if(isset( order_merchants [“ping_no”])&& order_merchants [“ping_no”]!=“”){ order_merchants [“ping_no”]!=“”){ transaction_id = ordermerchants[“pingno”]; o r d e r m e r c h a n t s [ “ p i n g n o ” ] ; total_fee ='1'; refundfee=′1′; r e f u n d f e e = ′ 1 ′ ; input = new \ WxPayRefund(); 输入−>SetTransactionid( 输 入 − > S e t T r a n s a c t i o n i d ( TRANSACTION_ID); 输入−>SetRefundfee( 输 入 − > S e t R e f u n d f e e ( refund_fee); 输入−>SetOutrefundno( WxPayConfig::MCHID.date(“YmdHis”)); 输 入 − > 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
...
打破; ““