Browse Source
Merge branch 'develop' of ssh://8.134.10.79:222/Leadfyy.co/hainan into develop
develop
Merge branch 'develop' of ssh://8.134.10.79:222/Leadfyy.co/hainan into develop
develop
4 changed files with 105 additions and 1 deletions
-
61app/Http/Controllers/Api/SharePayController.php
-
39app/Http/Controllers/Api/TestController.php
-
3app/Http/Controllers/Controller.php
-
3routes/api.php
@ -0,0 +1,61 @@ |
|||
<?php |
|||
|
|||
namespace App\Http\Controllers\Api; |
|||
use App\Common\OrderStatus as Status; |
|||
use App\Http\Controllers\Controller; |
|||
use App\Models\Order; |
|||
use App\Models\User; |
|||
use EasyWeChat\Factory; |
|||
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; |
|||
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
|||
use GuzzleHttp\Exception\GuzzleException; |
|||
|
|||
/** |
|||
* 跳转支付 |
|||
* Class SharePay |
|||
* @package App\Http\Controllers\Api |
|||
*/ |
|||
class SharePayController extends Controller |
|||
{ |
|||
public function pay() |
|||
{ |
|||
$order_id = request()->input('id'); |
|||
if (!$order_id) { |
|||
return $this->error('无效的ID'); |
|||
} |
|||
//用户openid
|
|||
$openid = User::query()->where('id', $this->user_id)->value('openid'); //此处要用where,value()用find有BUG
|
|||
|
|||
$order = Order::query()->whereIn('status', [Status::UNPAID, Status::PAY_EARNEST])->find($order_id); |
|||
|
|||
$config = config('wechat.payment.default'); |
|||
$config = array_merge($config, [ |
|||
'app_id' => 'wxb35ef055a4dd8ad4', |
|||
'mch_id' => 'c782df1e6d3a03bb4a12e9d41c89cf9c', |
|||
'key' => 'lfyyhyz8888888888888888888888888', |
|||
]); |
|||
|
|||
$app = Factory::payment($config); |
|||
try { |
|||
$result = $app->order->unify([ |
|||
'body' => $order->title, |
|||
'out_trade_no' => $order->order_no . '-' . $order->status, //后面加status,主要是为了方便微信支付回调时区分定金(首付款)和尾款支付
|
|||
'total_fee' => 1, //TODO 测试暂时注释 round($price * 100), //支付金额单位为分
|
|||
'notify_url' => route('wxpay_notify', ['agent_id' => $this->agent_id]), // 支付结果通知网址,如果不设置则会使用配置里的默认地址
|
|||
'trade_type' => 'JSAPI', |
|||
'openid' => $openid, |
|||
// 'profit_sharing' => 'Y', //Y分账,N不分账,默认不分账,Y大写
|
|||
]); |
|||
} catch (InvalidArgumentException | InvalidConfigException | GuzzleException $e) { |
|||
return ['error' => $e->getMessage(), 'line' => $e->getLine()]; |
|||
} |
|||
|
|||
if (empty($result['prepay_id'])) { |
|||
return $result; |
|||
} |
|||
|
|||
$jssdk = $app->jssdk; |
|||
$payConfig = $jssdk->bridgeConfig($result['prepay_id'], false) + ['id' => $order->id, 'order_no' => $order->order_no]; // 返回数组
|
|||
return $this->success($payConfig); |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue