Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 64 |
| RejectedController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
110.00 | |
0.00% |
0 / 64 |
| sendRejected | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 19 |
|||
| sendRejectedByApi | |
0.00% |
0 / 1 |
12.00 | |
0.00% |
0 / 16 |
|||
| packSendToRemote | |
0.00% |
0 / 1 |
20.00 | |
0.00% |
0 / 29 |
|||
| <?php | |
| namespace App\Http\Controllers\api\jianshang; | |
| use App\Http\Controllers\Controller; | |
| use App\Rejected; | |
| use Carbon\Carbon; | |
| use Illuminate\Http\Request; | |
| use Illuminate\Support\Collection; | |
| use Zttp\Zttp; | |
| class RejectedController extends Controller | |
| { | |
| function sendRejected(Rejected $rejected){ | |
| $amount = $rejected['amount'] ?? ''; | |
| $created_at = $rejected['created_at'] ?? ''; | |
| $fee_collected = $rejected['fee_collected'] ?? ''; | |
| $goods_barcode = $rejected['barcode_goods'] ?? ''; | |
| $goods_name = $rejected['name_goods'] ?? ''; | |
| $logistic_name_return = $rejected->logisticName(); | |
| $logistic_number = $rejected['logistic_number'] ?? ''; | |
| $logistic_number_return = $rejected['logistic_number_return'] ?? ''; | |
| $order_number = $rejected['order_number'] ?? ''; | |
| $quality_label = $rejected->qualityLabelName(); | |
| $sender_mobile = $rejected['mobile_sender'] ?? ''; | |
| $sender_name = $rejected['sender'] ?? ''; | |
| $json = $this->packSendToRemote($amount,$created_at,$fee_collected,$goods_barcode, | |
| $goods_name,$logistic_name_return,$logistic_number,$logistic_number_return,$order_number, | |
| $quality_label,$sender_mobile,$sender_name); | |
| if(!$json)return false; | |
| if(!$json['success']){ | |
| $this->log(__METHOD__,'error',"返回错误:".json_encode($json)); | |
| return false; | |
| }else{ | |
| $this->log(__METHOD__,'JianshangResponse',json_encode($json)); | |
| } | |
| return $json; | |
| } | |
| function sendRejectedByApi(Request $request){ | |
| $amount = $request->input('amount') ?? ''; | |
| $created_at = $request->input('created_at') ?? ''; | |
| $fee_collected = $request->input('fee_collected') ?? ''; | |
| $goods_barcode = $request->input('goods_barcode') ?? ''; | |
| $goods_name = $request->input('goods_name') ?? ''; | |
| $logistic_name_return = $request->input('logistic_name_return') ?? ''; | |
| $logistic_number = $request->input('logistic_number') ?? ''; | |
| $logistic_number_return = $request->input('logistic_number_return') ?? ''; | |
| $order_number = $request->input('order_number') ?? ''; | |
| $quality_label = $request->input('quality_label') ?? ''; | |
| $sender_mobile = $request->input('sender_mobile') ?? ''; | |
| $sender_name = $request->input('sender_name') ?? ''; | |
| $json = $this->packSendToRemote($amount,$created_at,$fee_collected,$goods_barcode, | |
| $goods_name,$logistic_name_return,$logistic_number,$logistic_number_return,$order_number, | |
| $quality_label,$sender_mobile,$sender_name); | |
| if(!$json)return ['success'=>'false','fail_info'=>'没有JSON回复']; | |
| if(!$json['success']){return $this->apiError(__METHOD__,"返回错误:".json_encode($json));} | |
| return $json; | |
| } | |
| private function packSendToRemote($amount,$created_at,$fee_collected,$goods_barcode, | |
| $goods_name,$logistic_name_return,$logistic_number,$logistic_number_return,$order_number, | |
| $quality_label,$sender_mobile,$sender_name){ | |
| if(env('api_faking'))return false; | |
| $data="{\"amount\":\"$amount\", \"created_at\":\"$created_at\", \"fee_collected\":\"$fee_collected\", | |
| \"goods_barcode\":\"$goods_barcode\", \"goods_name\":\"$goods_name\", \"logistic_name_return\":\"$logistic_name_return\", | |
| \"logistic_number\":\"$logistic_number\", \"logistic_number_return\":\"$logistic_number_return\", | |
| \"order_number\":\"$order_number\", \"quality_label\":\"$quality_label\", \"sender_mobile\":\"$sender_mobile\", \"sender_name\":\"$sender_name\"}"; | |
| $sortParamsAndMd5=function(Array $params,$timestamp,$nonce,$signKey){ | |
| $params=new Collection($params); | |
| $params=$params->sortKeys(); | |
| $str=''; | |
| $params->each(function($param,$key)use(&$str){ | |
| $val=trim($param); | |
| if($val){ | |
| $str .= $key.$val; | |
| } | |
| }); | |
| return strtolower(md5($str.$timestamp.$nonce.$signKey)); | |
| }; | |
| $timestamp=intval(microtime(true)*1000); | |
| $nonce=md5(microtime(true)); | |
| $sign=$sortParamsAndMd5(json_decode($data,true),$timestamp,$nonce,config('api.sign_key_rejected_send_jianshang')); | |
| $url=config('api.url_rejected_send_jianshang'); | |
| $response=Zttp::withHeaders([ | |
| 'sign'=>$sign, | |
| 'nonce'=>$nonce, | |
| 'timestamp'=>$timestamp, | |
| 'Content-Type'=>'application/json' | |
| ])->post($url,json_decode($data,true)); | |
| $this->log(__METHOD__,'json',$data); | |
| if(!$response){ | |
| $this->log(__METHOD__,'error','回复异常:'.$response->body()); | |
| return false; | |
| } | |
| return $response->json(); | |
| } | |
| } |