Skip to content

Commit

Permalink
Merge branch 'feature/pay'
Browse files Browse the repository at this point in the history
  • Loading branch information
tangqi198707 committed Dec 29, 2018
2 parents 1046c19 + ce94ffe commit 29e9a8e
Show file tree
Hide file tree
Showing 7 changed files with 189 additions and 153 deletions.
222 changes: 114 additions & 108 deletions composer.json
@@ -1,110 +1,116 @@
{
"name": "ibrand/open-ecommerce",
"description": "iBrand's ecommerce is an laravel open source project, This is an easy-to-use e-commerce solution.",
"keywords": ["ibrand", "ecommerce","laravel","vue","miniprogram"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0",
"barryvdh/laravel-cors": "^0.10",
"dingo/api": "2.0.0-alpha1",
"fideloper/proxy": "~3.3",
"ibrand/backend": "~3.0",
"ibrand/laravel-miniprogram-poster": "^1.1",
"ibrand/laravel-shopping-cart": "^1.3",
"ibrand/laravel-sms": "~1.0",
"ibrand/laravel-ueditor": "^1.0",
"ibrand/setting": "^1.1",
"lavary/laravel-menu": "~1.7",
"laravelcollective/html": "^5.5",
"ibrand/laravel-active": "~2.0",
"overtrue/laravel-uploader": "~0.0.7",
"intervention/image": "^2.3",
"jenssegers/agent": "^2.4",
"kalnoy/nestedset": "^4.1",
"laracasts/flash": "^2.0",
"laravel/framework": "5.5.*",
"laravel/passport": "^4.0",
"laravel/tinker": "~1.0",
"league/fractal": "^0.17.0",
"marktopper/doctrine-dbal-timestamp-type": "^1.0",
"milon/barcode": "^5.3",
"overtrue/laravel-wechat": "~4.0",
"predis/predis": "1.*",
"prettus/l5-repository": "^2.1",
"qiniu/php-sdk": "^7.0",
"simplesoftwareio/simple-qrcode": "~1",
"vinkla/hashids": "~3.3.0",
"wikimedia/composer-merge-plugin": "^1.4"
},
"require-dev": {
"barryvdh/laravel-debugbar": "~2.4",
"barryvdh/laravel-ide-helper": "^2.4",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~6.0",
"symfony/thanks": "^1.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories",
"database/migrations"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"merge-plugin": {
"include": [
"modules/EC.Open.Core/composer.json",
"modules/EC.Open.Server/composer.json",
"modules/EC.Open.Backend/*/composer.json",
"modules/component/*/composer.json"
],
"recurse": false,
"replace": true,
"ignore-duplicates": true,
"merge-dev": true,
"merge-extra": false,
"merge-extra-deep": false
},
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"repositories": [
{
"packagist": false
},
{
"type": "composer",
"url": "https://packagist.laravel-china.org"
}
]
"name": "ibrand/open-ecommerce",
"description": "iBrand's ecommerce is an laravel open source project, This is an easy-to-use e-commerce solution.",
"keywords": [
"ibrand",
"ecommerce",
"laravel",
"vue",
"miniprogram"
],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0",
"barryvdh/laravel-cors": "^0.10",
"dingo/api": "2.0.0-alpha1",
"fideloper/proxy": "~3.3",
"ibrand/backend": "~3.0",
"ibrand/laravel-miniprogram-poster": "^1.1",
"ibrand/laravel-shopping-cart": "^1.3",
"ibrand/laravel-sms": "~1.0",
"ibrand/laravel-ueditor": "^1.0",
"ibrand/setting": "^1.1",
"lavary/laravel-menu": "~1.7",
"laravelcollective/html": "^5.5",
"ibrand/laravel-active": "~2.0",
"overtrue/laravel-uploader": "~0.0.7",
"intervention/image": "^2.3",
"jenssegers/agent": "^2.4",
"kalnoy/nestedset": "^4.1",
"laracasts/flash": "^2.0",
"laravel/framework": "5.5.*",
"laravel/passport": "^4.0",
"laravel/tinker": "~1.0",
"league/fractal": "^0.17.0",
"marktopper/doctrine-dbal-timestamp-type": "^1.0",
"milon/barcode": "^5.3",
"overtrue/laravel-wechat": "~4.0",
"predis/predis": "1.*",
"prettus/l5-repository": "^2.1",
"qiniu/php-sdk": "^7.0",
"simplesoftwareio/simple-qrcode": "~1",
"vinkla/hashids": "~3.3.0",
"wikimedia/composer-merge-plugin": "^1.4"
},
"require-dev": {
"barryvdh/laravel-debugbar": "~2.4",
"barryvdh/laravel-ide-helper": "^2.4",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~6.0",
"symfony/thanks": "^1.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories",
"database/migrations"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"merge-plugin": {
"include": [
"modules/EC.Open.Core/composer.json",
"modules/EC.Open.Server/composer.json",
"modules/EC.Open.Backend/*/composer.json",
"modules/component/*/composer.json"
],
"recurse": false,
"replace": true,
"ignore-duplicates": true,
"merge-dev": true,
"merge-extra": false,
"merge-extra-deep": false
},
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"repositories": [
{
"packagist": false
},
{
"type": "composer",
"url": "https://packagist.laravel-china.org"
}
]
}
4 changes: 2 additions & 2 deletions config/api.php
Expand Up @@ -138,10 +138,10 @@
*/

'errorFormat' => [
'status' => false,
'message' => ':message',
'errors' => ':errors',
'code' => ':code',
'status_code' => ':status_code',
'code' => ':status_code',
'debug' => ':debug',
],

Expand Down
4 changes: 4 additions & 0 deletions config/app.php
Expand Up @@ -182,6 +182,8 @@
Prettus\Repository\Providers\RepositoryServiceProvider::class,
HieuLe\Active\ActiveServiceProvider::class,

iBrand\Component\Pay\PayServiceProvider::class,

iBrand\EC\Open\Core\Providers\AppServiceProvider::class,
iBrand\EC\Open\Server\Providers\ServerServiceProvider::class,

Expand Down Expand Up @@ -248,6 +250,8 @@
'View' => Illuminate\Support\Facades\View::class,
'Active' => HieuLe\Active\Facades\Active::class,

'Charge'=> iBrand\Component\Pay\Facades\Charge::class,
'PayNotify' => iBrand\Component\Pay\Facades\PayNotify::class,
],

];
32 changes: 22 additions & 10 deletions modules/EC.Open.Server/src/Http/Controllers/PaymentController.php
Expand Up @@ -11,8 +11,11 @@

namespace iBrand\EC\Open\Server\Http\Controllers;

use Carbon\Carbon;
use iBrand\Component\Order\Models\Order;
use iBrand\Component\Order\Repositories\OrderRepository;
use iBrand\Component\Pay\Facades\Charge;
use iBrand\Component\Pay\Facades\PayNotify;
use iBrand\Component\Payment\Models\Payment;
use iBrand\Component\Payment\Services\PaymentService;
use EasyWeChat;
Expand Down Expand Up @@ -45,17 +48,26 @@ public function paidSuccess()

//在pay_debug=true 状态下,可以调用此接口直接更改订单支付状态
if (config('ibrand.app.pay_debug')) {
$charge['metadata']['order_no'] = $order_no;
$charge['amount'] = $order->total;
$charge['transaction_no'] = '';
$charge['time_paid'] = time();
$charge['details'] = '';
$charge['channel'] = 'test';

$order = $this->payment->paySuccess($charge);

$charge = \iBrand\Component\Pay\Models\Charge::where('order_no', $order_no)->orderBy('created_at', 'desc')->first();
$charge->transaction_no = '';
$charge->time_paid = Carbon::now();
$charge->paid = 1;
$charge->channel = 'test';
$charge->amount = $order->total;
$charge->save();

$order = PayNotify::success($charge->type, $charge);

} else {
//同步查询微信订单状态,防止异步通信失败导致订单状态更新失败
$payment = EasyWeChat::payment();

$charge = Charge::find(request('charge_id'));

$order = PayNotify::success($charge->type, $charge);


/*$payment = EasyWeChat::payment();
$result = $payment->order->queryByOutTradeNumber($order_no);
if ('FAIL' == $result['return_code']) {
Expand All @@ -77,7 +89,7 @@ public function paidSuccess()
$charge['details'] = json_encode($result);
$charge['channel'] = 'wx_lite';
$order = $this->payment->paySuccess($charge);
$order = $this->payment->paySuccess($charge);*/
}

if (Order::STATUS_PAY == $order->status) {
Expand Down
Expand Up @@ -16,6 +16,7 @@
use iBrand\Component\Order\Repositories\OrderRepository;
use iBrand\Component\Payment\Models\Payment;
use Illuminate\Http\Request;
use iBrand\Component\Pay\Facades\Charge;

class WechatPayController extends Controller
{
Expand Down Expand Up @@ -48,8 +49,19 @@ public function createCharge()
return $this->failed('无法支付,需支付金额为零');
}

$charge = Charge::create(['channel' => 'wx_lite'
, 'order_no' => $order_no
, 'amount' => $order->getNeedPayAmount()
, 'client_ip' => \request()->getClientIp()
, 'subject' => $order->getSubject()
, 'body' => $order->getSubject()
, 'extra' => ['openid' => \request('openid')]
]);

return $this->success(compact('charge'));

//openid 和 订单编号
$payment = EasyWeChat::payment();
/*$payment = EasyWeChat::payment();
$data = $payment->order->unify([
'body' => $order->getSubject(),
Expand All @@ -73,6 +85,6 @@ public function createCharge()
} elseif ('FAIL' == $data['result_code']) {
return $this->failed($data['err_code_des']);
}
return $this->failed('支付未知错误');
return $this->failed('支付未知错误');*/
}
}
Expand Up @@ -11,6 +11,8 @@

namespace iBrand\Component\Payment\Providers;

use iBrand\Component\Payment\Services\PaymentService;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider;

class PaymentServiceProvider extends ServiceProvider
Expand All @@ -36,5 +38,7 @@ public function register()
$this->mergeConfigFrom(
__DIR__.'/../../config/payment.php', 'ibrand.payment'
);

$this->app->bind('ibrand.pay.notify.default',PaymentService::class);
}
}

0 comments on commit 29e9a8e

Please sign in to comment.