demo
?
permission.js
?文件,添加權(quán)限和對應(yīng)的模板路徑(一定要添加二級(jí)類目到?index
?,這樣三級(jí)目錄才能正常訪問)第五步: 添加權(quán)限文件,可復(fù)制一份文件,然后修改?
list.vue
?(列表),如果存在詳情頁,請?zhí)砑?components
?目錄
示例代碼:
public function weixinPayment($body,$fee,$openid,$trade_type='JSAPI'){
$number= orderNumber();
$config = config('wechat.payment.default');
$config['notify_url'] = request()->root().'/api/v1/app/paymentNotify';
$app = Factory::payment($config);
$result = $app->order->unify([
'body' => $body,
'out_trade_no' => $number,
'total_fee' => $fee,
'trade_type' => $trade_type,
'openid' => $openid,
]);
$return =[
'result'=>'error',
'msg'=>'支付異常,請聯(lián)系管理員'
];
if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
$prepayId = $result['prepay_id'];
$config = $app->jssdk->sdkConfig($prepayId);
$return =[
'result'=>'ok',
'msg'=>$config,
'number'=>$number
];
}
if ($result['return_code'] == 'FAIL' && array_key_exists('return_msg', $result)) {
$return =[
'result'=>'error',
'msg'=>$result['return_msg']
];
}
return $return;
}
屬性 | 類型 | 默認(rèn)值 | 必填 | 說明 |
---|---|---|---|---|
result | string | 是 | 返回狀態(tài),成功:ok 失敗:error | |
code | string | 否 | 錯(cuò)誤碼,當(dāng)result為error時(shí)需填寫 | |
msg | string | 否 | 錯(cuò)誤原因,當(dāng)result為error時(shí)需填寫 | |
number | string | 否 | 訂單號(hào),當(dāng)result為ok時(shí)需填寫 |
switch ($request->type){
case 'goodsIndent': //商品訂單支付
$reutn = (new GoodIndent())->payment($request);
break;
}
public function payment($request){
$openid=$request->header('openid');
$GoodIndent=static::with(['goodsList'])->find($request->id);
$body='對訂單:'.$GoodIndent->identification.'的付款';
$fee=$GoodIndent->total;
$trade_type="JSAPI";
$MiniProgram = new MiniProgram();
$payment=$MiniProgram->payment($request->platform,$body,$fee,$openid,$trade_type);
if($payment['result']== 'error'){
return $payment;
}
$PaymentLog = new PaymentLog();
$PaymentLog->name = $body;
$PaymentLog->number = $payment['number'];
$PaymentLog->money = $GoodIndent->total;
$PaymentLog->pay_id = $request->id; //訂單ID
$PaymentLog->pay_type = 'App\Models\v1\GoodIndent';
$PaymentLog->state = PaymentLog::PAYMENT_LOG_STATE_CREATE;
$PaymentLog->save();
//庫存判斷
foreach ($GoodIndent->goodsList as $indentCommodity){
$Good=Good::select('id','is_inventory','inventory')->find($indentCommodity['good_id']);
if($Good && $Good->is_inventory == Good::GOOD_IS_INVENTORY_FILM){ //付款減庫存
if(!$indentCommodity['good_sku_id']){ //非SKU商品
if($Good->inventory-$indentCommodity['number']<0){
return [
'result'=>'error',
'msg'=>'存在庫存不足的商品,請重新購買'
];
}
$Good->inventory = $Good->inventory-$indentCommodity['number'];
$Good->save();
}else{
$GoodSku=GoodSku::find($indentCommodity['good_sku_id']);
if($GoodSku->inventory-$indentCommodity['number']<0){
return [
'result'=>'error',
'msg'=>'存在庫存不足的SKU商品,請重新購買'
];
}
$GoodSku->inventory = $GoodSku->inventory-$indentCommodity['number'];
$GoodSku->save();
}
}
}
return $payment;
}
更多建議: