64 lines
1.7 KiB
PHP
64 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: sunny
|
|
* Date: 2019/2/21
|
|
* Time: 11:26 AM
|
|
*/
|
|
|
|
namespace App\Api\Controllers;
|
|
|
|
|
|
use App\Models\Payment;
|
|
use Illuminate\Http\Request;
|
|
use RuLong\Order\Models\Order;
|
|
|
|
class PayController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth.api');
|
|
$this->user = \Auth::guard('api')->user();
|
|
$this->uid = \Auth::guard('api')->id();
|
|
}
|
|
|
|
private function getpayOrder(Order $order, $type)
|
|
{
|
|
$payOrder = Payment::create([
|
|
'order_id' => $order->id,
|
|
'type' => $type,
|
|
'amount' => $order->total - $order->score,
|
|
]);
|
|
return $payOrder;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
|
|
$orderid = $request->orderId;
|
|
$order = Order::find($orderid);
|
|
|
|
// $app = app('wechat.mini_program');
|
|
// $wechatMessage = $app->auth->session($request->code);
|
|
// $openid = $wechatMessage->openid;
|
|
|
|
$openid = $request->openid;
|
|
$payOrder = $this->getpayOrder($order, 'WECHAT');
|
|
$payment = app('wechat.payment.mini');
|
|
$result = $payment->order->unify([
|
|
'body' => '商城订单',
|
|
'out_trade_no' => $payOrder->trade_no,
|
|
'total_fee' => 0.01 * 100,
|
|
'notify_url' => 'http://mapi.bohaimingpin.com/callback/index',
|
|
'trade_type' => 'JSAPI',
|
|
'openid' => $openid,
|
|
]);
|
|
|
|
if ($result['return_code'] == 'SUCCESS' && isset($result['prepay_id'])) {
|
|
$json = $payment->jssdk->bridgeConfig($result['prepay_id']);
|
|
return $this->success($json);
|
|
} else {
|
|
return $this->failed($result['return_msg']);
|
|
}
|
|
}
|
|
} |