<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 訂單退款/退貨 #### 1.買家申請退款退貨 文件路徑: shop/controllers/Buyer/Service/ReturnCtl.php 方法: addReturn() 參數: order\_id:“退款/退貨”的訂單號 goods\_id:“退款/退貨”的訂單商品id return\_message:“退款/退貨”說明 return\_reason\_id:“退款/退貨”原因id nums:“退款/退貨”商品數量 1.根據goods\_id查找訂單信息,將查找出的訂單id與傳遞參數訂單id進行比較。兩者不一致,報錯。 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$goods<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">!==</span> $order_id<span class="token1">)</span> <span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 2.判斷訂單狀態,只有已付款訂單才可進去“退款/退貨” ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token"><</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED<span class="token1">)</span> <span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 3.確定return\_type的值,判斷此次的“退款/退貨”究竟是退款,還是退貨。 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_is_virtual'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> $field<span class="token1">[</span><span class="token4">'return_type'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_VIRTUAL<span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> switch <span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> case Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED<span class="token1">:</span>$field<span class="token1">[</span><span class="token4">'return_type'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_ORDER <span class="token1">;</span> <span class="token5">//退款</span> <span class="token2">break</span><span class="token1">;</span> case Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">:</span>$field<span class="token1">[</span><span class="token4">'return_type'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_GOODS <span class="token1">;</span> <span class="token5">//退貨</span> <span class="token2">break</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` 4.如果是貨到付款,確認收貨(付款)后才能退款 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'payment_id'</span><span class="token1">]</span> <span class="token">==</span> PaymentChannlModel<span class="token1">:</span><span class="token1">:</span>PAY_CONFIRM<span class="token1">)</span> <span class="token1">{</span> <span class="token2">if</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token"><</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_RECEIVED<span class="token1">)</span> <span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` 5.根據訂單狀態,確定return\_goods\_return值。 退款(貨到付款只支持退貨,不支持退款) ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$goods<span class="token1">[</span><span class="token4">'order_goods_status'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">&&</span> $order<span class="token1">[</span><span class="token4">'payment_id'</span><span class="token1">]</span> <span class="token">!==</span> PaymentChannlModel<span class="token1">:</span><span class="token1">:</span>PAY_CONFIRM<span class="token1">)</span> <span class="token1">{</span> <span class="token5">//白條支付不支持退款和退貨</span> <span class="token2">if</span><span class="token1">(</span><span class="token3">strstr</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'payment_name'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'白條支付'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> $field<span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">0</span><span class="token1">;</span> <span class="token5">//是否需要退貨 0-不需要 1-需要</span> $<span class="token2">return</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_goods_id'</span> <span class="token">=</span><span class="token">></span> $goods_id<span class="token1">,</span> <span class="token4">'return_type'</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_ORDER<span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 退貨 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$goods<span class="token1">[</span><span class="token4">'order_goods_status'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">)</span> <span class="token1">{</span> <span class="token2">if</span><span class="token1">(</span><span class="token3">strstr</span><span class="token1">(</span>$order<span class="token1">[</span><span class="token4">'payment_name'</span><span class="token1">]</span><span class="token1">,</span><span class="token4">'白條支付'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">{</span> $flag2 <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> $field<span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">1</span><span class="token1">;</span> <span class="token5">//需要退貨</span> <span class="token5">//查詢是否存在該訂單商品的退貨申請信息,且該申請未被賣家拒絕,以此判斷是否重新提交退貨申請</span> <span class="token5">//只有以前沒有提交過該商品的退貨申請,且未被賣家拒絕的情況下,才可以提交退貨申請</span> $<span class="token2">return</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_goods_id'</span> <span class="token">=</span><span class="token">></span> $goods_id<span class="token1">,</span> <span class="token4">'return_type'</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_TYPE_GOODS<span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 6.計算生成“退款/退貨”訂單所需要的各種金額 //判斷這件“退款/退貨”商品是否還有可退數量(退款,退貨都會退還商品數量) ``` <pre class="calibre14">``` $this_goods_return <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_goods_id'</span> <span class="token">=</span><span class="token">></span> $goods_id<span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` - $this\_goods\_return\_num :“退款/退貨”商品總的已退還件數 - $this\_goods\_return\_cash :“退款/退貨”商品總的已退金額(包含正在審核中的金額) //查找該筆訂單已經進行過或正進行中的的退款,退貨 ``` <pre class="calibre14">``` $order_return <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span> <span class="token4">'order_number'</span> <span class="token">=</span><span class="token">></span> $order<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">,</span> <span class="token4">'return_state:!='</span> <span class="token">=</span><span class="token">></span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS <span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` //訂單已經退款退貨的金額(包括與同意的退款和正在審核中的退款) ``` <pre class="calibre14">``` $order_return_cash <span class="token">=</span> <span class="token3">array_sum</span><span class="token1">(</span><span class="token3">array_column</span><span class="token1">(</span>$order_return<span class="token1">,</span> <span class="token4">'return_cash'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` //訂單已經退還的商品數量 ``` <pre class="calibre14">``` $order_return_num <span class="token">=</span> <span class="token3">array_sum</span><span class="token1">(</span><span class="token3">array_column</span><span class="token1">(</span>$order_return<span class="token1">,</span> <span class="token4">'order_goods_num'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` //訂單還可退還的金額 = 訂單實付金額 - 訂單已退金額 //如果沒有發貨,可以退運費 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">==</span> $order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> $order_can_return_cash <span class="token">=</span> $order<span class="token1">[</span><span class="token4">'order_payment_amount'</span><span class="token1">]</span> <span class="token">-</span> $order_return_cash<span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $order_can_return_cash <span class="token">=</span> $order<span class="token1">[</span><span class="token4">'order_payment_amount'</span><span class="token1">]</span> <span class="token">-</span> $order_return_cash <span class="token">-</span> $order<span class="token1">[</span><span class="token4">'order_shipping_fee'</span><span class="token1">]</span><span class="token1">;</span> <span class="token1">}</span> <span class="token5">/* * $data['order']['order_refund_amount'] 與 $order_return_cash 的區別 * $data['order']['order_refund_amount']:表示商家已經同意的退款金額 * $order_return_cash:表示買家已經申請的退款,除被商家拒絕的退款外,正在審核的退款也包含在內 */</span> <span class="token5">//訂單已退還的金額</span> $return_limit <span class="token">=</span> $order<span class="token1">[</span><span class="token4">'order_refund_amount'</span><span class="token1">]</span><span class="token1">;</span> <span class="token5">//訂單可退金額</span> $cash_limit <span class="token">=</span> $order_can_return_cash<span class="token1">;</span> <span class="token5">//訂單可退商品數量</span> $goods_can_return_nums <span class="token">=</span> $order_all_goods_num <span class="token">-</span> $order_return_num<span class="token1">;</span> <span class="token5">//該件商品可退的總金額</span> $return_goods_cash <span class="token">=</span> $goods<span class="token1">[</span><span class="token4">'order_goods_amount'</span><span class="token1">]</span> <span class="token">-</span> $this_goods_return_cash<span class="token1">;</span> <span class="token5">//該件商品還可退還商品數量</span> $return_goods_nums <span class="token">=</span> $goods<span class="token1">[</span><span class="token4">'order_goods_num'</span><span class="token1">]</span> <span class="token">-</span> $this_goods_return_num<span class="token1">;</span> ``` ``` //實際該件商品可退還的金額(有時可能包含運費) //該件商品全部“退款/退貨” //return\_goods\_nums ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$goods_can_return_nums <span class="token">==</span> $nums <span class="token">&&</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">==</span> $order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">//加上運費(未發貨)</span> $return_cash <span class="token">=</span> $return_goods_cash <span class="token">+</span> $order<span class="token1">[</span><span class="token4">'order_shipping_fee'</span><span class="token1">]</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $return_cash <span class="token">=</span> <span class="token3">floor</span><span class="token1">(</span>$nums <span class="token">*</span> $goods<span class="token1">[</span><span class="token4">'order_goods_payment_amount'</span><span class="token1">]</span> <span class="token">*</span> <span class="token6">100</span><span class="token1">)</span> <span class="token">/</span> <span class="token6">100</span><span class="token1">;</span> <span class="token1">}</span> <span class="token5">//如果訂單為已付款狀態,并且所有商品都退款,則將運費退還</span> <span class="token2">if</span><span class="token1">(</span>Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED <span class="token">==</span> $order<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token">&&</span> $nums <span class="token">==</span> $goods_can_return_nums<span class="token1">)</span> <span class="token1">{</span> $return_cash <span class="token">=</span> $cash_limit<span class="token1">;</span> <span class="token1">}</span> ``` ``` ``` <pre class="calibre14">``` <span class="token5">/*退款退貨走同樣的流程。區別是:退款時可能會退還運費,退貨不可能退還運費。*/</span> ``` ``` 7.訂單商品表中插入訂單商品的“退款/退貨”狀態 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$field<span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">0</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">//退款</span> $goods_field<span class="token1">[</span><span class="token4">'goods_return_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_IN<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderGoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$goods_id<span class="token1">,</span> $goods_field<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> <span class="token5">//退貨</span> $goods_field<span class="token1">[</span><span class="token4">'goods_refund_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_IN<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderGoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$goods_id<span class="token1">,</span> $goods_field<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` #### 2.商家審核退款退貨 文件路徑: shop\\controllers\\Seller\\Service\\ReturnCtl.php 方法: agreeReturn() 參數: order\_return\_id:退單id return\_shop\_message:商家處理備注 1.判斷此退單是否已經被處理。 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_state'</span><span class="token1">]</span> <span class="token">==</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_PASS<span class="token1">)</span> <span class="token1">{</span> $msg <span class="token">=</span> <span class="token3">__</span><span class="token1">(</span><span class="token4">'已經退款,請刷新頁面。'</span><span class="token1">)</span><span class="token1">;</span> $status <span class="token">=</span> <span class="token6">200</span><span class="token1">;</span> $this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">,</span> $msg<span class="token1">,</span> $status<span class="token1">)</span><span class="token1">;</span> <span class="token2">return</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 2.判斷商家處理備注是都存在違禁詞 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>Text_Filter<span class="token1">:</span><span class="token1">:</span><span class="token3">checkBanned</span><span class="token1">(</span>$return_shop_message<span class="token1">,</span> $matche_row<span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span> $msg <span class="token">=</span> <span class="token3">__</span><span class="token1">(</span><span class="token4">'含有違禁詞'</span><span class="token1">)</span><span class="token1">;</span> $status <span class="token">=</span> <span class="token6">250</span><span class="token1">;</span> $this<span class="token">-</span><span class="token">></span>data<span class="token">-</span><span class="token">></span><span class="token3">addBody</span><span class="token1">(</span><span class="token">-</span><span class="token6">140</span><span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">,</span> $msg<span class="token1">,</span> $status<span class="token1">)</span><span class="token1">;</span> <span class="token2">return</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 3.判讀訂單是否已經收獲,如果沒有收貨,不扣除賣家資金。已確認收貨則扣除賣家資金。 $order\_finish:訂單是否已經完成確認收貨 false :已收貨 true:未收貨 4.獲取用戶的賬戶資金信息 ``` <pre class="calibre14">``` $key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span> $formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $user_id <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> $user_id<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span> $money_row <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_User_Info&met=getUserResourceInfo&typ=json'</span><span class="token1">,</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span> $user_money <span class="token">=</span> $money<span class="token1">[</span><span class="token4">'user_money'</span><span class="token1">]</span><span class="token1">;</span> <span class="token5">//賬戶余額</span> $user_money_frozen <span class="token">=</span> $money<span class="token1">[</span><span class="token4">'user_money_frozen'</span><span class="token1">]</span><span class="token1">;</span> <span class="token5">//賬戶凍結資金</span> <span class="token5">//判斷訂單是否已經結算</span> <span class="token2">if</span><span class="token1">(</span>$settlement_unixtime <span class="token">>=</span> $order_finish_unixtime <span class="token1">)</span> <span class="token1">{</span> <span class="token5">//結算時間大于訂單完成時間。需要扣除賣家的現金賬戶</span> $money <span class="token">=</span> $user_money<span class="token1">;</span> $pay_type <span class="token">=</span> <span class="token4">'cash'</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> <span class="token5">//結算時間小于訂單完成時間。需要扣除賣家的凍結資金,如果凍結資金不足就扣除賬戶余額</span> $money <span class="token">=</span> $user_money_frozen <span class="token">+</span> $user_money<span class="token1">;</span> $pay_type <span class="token">=</span> <span class="token4">'frozen_cash'</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` 5.判斷該退單是否是當前商家的訂單 6.當退款金額小于用戶資金時,或者訂單為未收貨訂單時流程繼續,否則報錯。 ``` <pre class="calibre14">``` $shop_return_amount <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_cash'</span><span class="token1">]</span> <span class="token">-</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_commision_fee'</span><span class="token1">]</span><span class="token1">;</span> ``` ``` $shop\_return\_amount:退款金額 $money:用戶資金 修改退貨單狀態 ``` <pre class="calibre14">``` $data<span class="token1">[</span><span class="token4">'return_shop_message'</span><span class="token1">]</span> <span class="token">=</span> $return_shop_message<span class="token1">;</span> <span class="token2">if</span> <span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span> <span class="token">==</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_GOODS_RETURN<span class="token1">)</span> <span class="token1">{</span> $data<span class="token1">[</span><span class="token4">'return_state'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_PASS<span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $data<span class="token1">[</span><span class="token4">'return_state'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_GOODS<span class="token1">;</span> <span class="token1">}</span> $data<span class="token1">[</span><span class="token4">'return_shop_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>orderReturnModel<span class="token">-</span><span class="token">></span><span class="token3">editReturn</span><span class="token1">(</span>$order_return_id<span class="token1">,</span> $data<span class="token1">)</span><span class="token1">;</span> ``` ``` 修改退貨單成功后,如果訂單為已收貨訂單,則修改商家金額。 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$flag <span class="token">&&</span> <span class="token">!</span>$order_finish<span class="token1">)</span> <span class="token1">{</span> <span class="token5">//扣除賣家的金額</span> $key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span> $formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $user_id <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> $user_id<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_name'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_name'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'money'</span><span class="token1">]</span> <span class="token">=</span> $shop_return_amount <span class="token">*</span> <span class="token1">(</span><span class="token">-</span><span class="token6">1</span><span class="token1">)</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'pay_type'</span><span class="token1">]</span> <span class="token">=</span> $pay_type<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'reason'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'退款'</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $order_base<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_id'</span><span class="token1">]</span><span class="token1">;</span> $rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_User_Info&met=editReturnUserResourceInfo&typ=json'</span><span class="token1">,</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span> $dist_rs<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">200</span><span class="token1">;</span> <span class="token5">//分銷</span> <span class="token2">if</span><span class="token1">(</span><span class="token3">isset</span><span class="token1">(</span>$dist_return_order<span class="token1">)</span> <span class="token">&&</span> <span class="token">!</span><span class="token3">empty</span><span class="token1">(</span>$dist_return_order<span class="token1">)</span><span class="token1">)</span><span class="token1">{</span> $key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span> $formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $user_id <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> $dist_order<span class="token1">[</span><span class="token4">'seller_user_id'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_name'</span><span class="token1">]</span> <span class="token">=</span> $dist_order<span class="token1">[</span><span class="token4">'seller_user_name'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'money'</span><span class="token1">]</span> <span class="token">=</span> <span class="token1">(</span>$dist_return_order<span class="token1">[</span><span class="token4">'return_cash'</span><span class="token1">]</span><span class="token">-</span>$dist_return_order<span class="token1">[</span><span class="token4">'return_commision_fee'</span><span class="token1">]</span><span class="token1">)</span><span class="token">*</span><span class="token1">(</span><span class="token">-</span><span class="token6">1</span><span class="token1">)</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $dist_order<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span> <span class="token">=</span><span class="token6">0</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'pay_type'</span><span class="token1">]</span> <span class="token">=</span> $pay_type<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'reason'</span><span class="token1">]</span> <span class="token">=</span> <span class="token4">'退款'</span><span class="token1">;</span> $dist_rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_User_Info&met=editReturnUserResourceInfo&typ=json'</span><span class="token1">,</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">if</span><span class="token1">(</span>$rs<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">200</span> <span class="token">&&</span> $dist_rs<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span><span class="token">==</span><span class="token6">200</span><span class="token1">)</span> <span class="token1">{</span> $flag <span class="token">=</span> <span class="token6">true</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $flag <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` #### 3.平臺審核退款退貨 文件路徑: shop\\controllers\\Api\\Trade\\ReturnCtl.php 方法: agree() 參數: order\_return\_id:退單id return\_platform\_message:處理備注 1.判斷商家是否同意此退單,如果不同意則只修改訂單狀態,不修改商家金額。如果商家同意,則修改訂單狀態并修改商家金額。 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_state'</span><span class="token1">]</span> <span class="token">==</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_SELLER_UNPASS<span class="token1">)</span> <span class="token1">{</span> <span class="token5">//不同意</span> $data<span class="token1">[</span><span class="token4">'return_platform_message'</span><span class="token1">]</span> <span class="token">=</span> $return_platform_message<span class="token1">;</span> $data<span class="token1">[</span><span class="token4">'return_state'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_PLAT_PASS<span class="token1">;</span> $data<span class="token1">[</span><span class="token4">'return_finish_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $rs_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $this<span class="token">-</span><span class="token">></span>Order_ReturnModel<span class="token">-</span><span class="token">></span>sql<span class="token">-</span><span class="token">></span><span class="token3">startTransactionDb</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_ReturnModel<span class="token">-</span><span class="token">></span><span class="token3">editReturn</span><span class="token1">(</span>$order_return_id<span class="token1">,</span> $data<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token2">if</span> <span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">//商品退換情況為完成2</span> $goods_data<span class="token1">[</span><span class="token4">'goods_refund_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_COM<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_id'</span><span class="token1">]</span><span class="token1">,</span> $goods_data<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $goods_data<span class="token1">[</span><span class="token4">'goods_return_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_COM<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_id'</span><span class="token1">]</span><span class="token1">,</span> $goods_data<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` 2.商家同意退款的情況 (1)修改退單的狀態 ``` <pre class="calibre14">``` $data<span class="token1">[</span><span class="token4">'return_platform_message'</span><span class="token1">]</span> <span class="token">=</span> $return_platform_message<span class="token1">;</span> $data<span class="token1">[</span><span class="token4">'return_state'</span><span class="token1">]</span> <span class="token">=</span> Order_ReturnModel<span class="token1">:</span><span class="token1">:</span>RETURN_PLAT_PASS<span class="token1">;</span> $data<span class="token1">[</span><span class="token4">'return_finish_time'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $rs_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $this<span class="token">-</span><span class="token">></span>Order_ReturnModel<span class="token">-</span><span class="token">></span>sql<span class="token">-</span><span class="token">></span><span class="token3">startTransactionDb</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_ReturnModel<span class="token">-</span><span class="token">></span><span class="token3">editReturn</span><span class="token1">(</span>$order_return_id<span class="token1">,</span> $data<span class="token1">)</span><span class="token1">;</span> ``` ``` (2)根據退款/退貨情況,修改訂單商品的狀態 ``` <pre class="calibre14">``` <span class="token2">if</span> <span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_goods_return'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">//商品退換情況為完成2</span> $goods_data<span class="token1">[</span><span class="token4">'goods_refund_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_COM<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_id'</span><span class="token1">]</span><span class="token1">,</span> $goods_data<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> $goods_data<span class="token1">[</span><span class="token4">'goods_return_status'</span><span class="token1">]</span> <span class="token">=</span> Order_GoodsModel<span class="token1">:</span><span class="token1">:</span>REFUND_COM<span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_id'</span><span class="token1">]</span><span class="token1">,</span> $goods_data<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` (3)將退款金額,退還傭金,退還紅包,退貨數量等寫入訂單表 ``` <pre class="calibre14">``` $order_edit<span class="token1">[</span><span class="token4">'order_refund_amount'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_cash'</span><span class="token1">]</span><span class="token1">;</span> $order_edit<span class="token1">[</span><span class="token4">'order_return_num'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_num'</span><span class="token1">]</span><span class="token1">;</span> $order_edit<span class="token1">[</span><span class="token4">'order_commission_return_fee'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_commision_fee'</span><span class="token1">]</span><span class="token1">;</span> $order_edit<span class="token1">[</span><span class="token4">'order_rpt_return'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_rpt_cash'</span><span class="token1">]</span><span class="token1">;</span> $edit_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBase</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_number'</span><span class="token1">]</span><span class="token1">,</span> $order_edit<span class="token1">,</span><span class="token6">true</span><span class="token1">)</span><span class="token1">;</span> ``` ``` (4)如果此訂單為退款訂單,并且將所有商品退還,則就訂單狀態修改為完成狀態 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$order_all_goods_num <span class="token">==</span> $order_return_num <span class="token">&&</span> $order_base<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token">!==</span> $Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">)</span> <span class="token1">{</span> $order_edit_row <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $order_edit_row<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token">=</span> $Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">;</span> $edit_flag2 <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">editBase</span><span class="token1">(</span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_number'</span><span class="token1">]</span><span class="token1">,</span> $order_edit_row<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$edit_flag2<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` (5)在paycenter中增加退款流水 判斷該筆訂單是否是主賬號支付,如果是主賬號支付,則將退款金額退還主賬號 ``` <pre class="calibre14">``` <span class="token2">if</span><span class="token1">(</span>$order_base<span class="token1">[</span><span class="token4">'order_sub_pay'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>SUB_SELF_PAY<span class="token1">)</span> <span class="token1">{</span> $return_user_id <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'buyer_user_id'</span><span class="token1">]</span><span class="token1">;</span> $return_user_name <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'buyer_user_account'</span><span class="token1">]</span><span class="token1">;</span> <span class="token1">}</span> <span class="token2">if</span><span class="token1">(</span>$order_base<span class="token1">[</span><span class="token4">'order_sub_pay'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>SUB_USER_PAY<span class="token1">)</span> <span class="token1">{</span> <span class="token5">//查找主管賬戶用戶名</span> $User_BaseModel <span class="token">=</span> <span class="token2">new</span> <span class="token3">User_BaseModel</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $sub_user_base <span class="token">=</span> $User_BaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOne</span><span class="token1">(</span>$order_base<span class="token1">[</span><span class="token4">'order_sub_user'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">;</span> $return_user_id <span class="token">=</span> $order_base<span class="token1">[</span><span class="token4">'order_sub_user'</span><span class="token1">]</span><span class="token1">;</span> $return_user_name <span class="token">=</span> $sub_user_base<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">;</span> <span class="token1">}</span> $key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span> $url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">;</span> $shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span> $formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> $return_user_id<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span> <span class="token">=</span> $return_user_name<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'seller_id'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'seller_user_id'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'seller_account'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'seller_user_account'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'amount'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_cash'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'return_commision_fee'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'return_commision_fee'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_number'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'goods_id'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_goods_id'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'uorder_id'</span><span class="token1">]</span> <span class="token">=</span> $order_base<span class="token1">[</span><span class="token4">'payment_other_number'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'payment_id'</span><span class="token1">]</span> <span class="token">=</span> $order_base<span class="token1">[</span><span class="token4">'payment_id'</span><span class="token1">]</span><span class="token1">;</span> <span class="token5">//平臺同意退款(只增加買家的流水)</span> $rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=refundBuyerTransfer&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span> ``` ``` (6)如果訂單金額全數退還需要將訂單商品,支付中心的訂單狀態修改為訂單完成(未發貨) ``` <pre class="calibre15">``` <span class="token2">if</span><span class="token1">(</span>$order_all_goods_num <span class="token">==</span> $order_return_num <span class="token">&&</span> $order_base<span class="token1">[</span><span class="token4">'order_status'</span><span class="token1">]</span> <span class="token">==</span> Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_PAYED<span class="token1">)</span> <span class="token1">{</span> $goods_data<span class="token1">[</span><span class="token4">'order_goods_status'</span><span class="token1">]</span> <span class="token">=</span> $Order_StateModel<span class="token1">:</span><span class="token1">:</span>ORDER_FINISH<span class="token1">;</span> $order_goods_ids <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">getByWhere</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span><span class="token4">'order_id'</span><span class="token">=</span><span class="token">></span>$<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_number'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> $ed_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>Order_GoodsModel<span class="token">-</span><span class="token">></span><span class="token3">editGoods</span><span class="token1">(</span>$order_goods_ids<span class="token1">,</span> $goods_data<span class="token1">)</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$ed_flag<span class="token1">,</span> $rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token5">//將需要確認的訂單號遠程發送給Paycenter修改訂單狀態</span> <span class="token5">//遠程修改paycenter中的訂單狀態</span> $key <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_api_key'</span><span class="token1">)</span><span class="token1">;</span> $url <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'paycenter_api_url'</span><span class="token1">)</span><span class="token1">;</span> $shop_app_id <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span> $formvars <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'order_id'</span><span class="token1">]</span> <span class="token">=</span> $<span class="token2">return</span><span class="token1">[</span><span class="token4">'order_number'</span><span class="token1">]</span><span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'app_id'</span><span class="token1">]</span> <span class="token">=</span> $shop_app_id<span class="token1">;</span> $formvars<span class="token1">[</span><span class="token4">'from_app_id'</span><span class="token1">]</span> <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'shop_app_id'</span><span class="token1">)</span><span class="token1">;</span> $rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=confirmOrder&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span> <span class="token2">if</span><span class="token1">(</span>$rs<span class="token1">[</span><span class="token4">'status'</span><span class="token1">]</span> <span class="token">==</span> <span class="token6">250</span><span class="token1">)</span> <span class="token1">{</span> $rs_flag <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span> <span class="token3">check_rs</span><span class="token1">(</span>$rs_flag<span class="token1">,</span>$rs_row<span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看