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
 - 
					37app/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