国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

帶你十天輕松搞定 Go 微服務(wù)系列(六)

共 14748字,需瀏覽 30分鐘

 ·

2022-02-26 15:32

序言

我們通過一個(gè)系列文章跟大家詳細(xì)展示一個(gè) go-zero 微服務(wù)示例,整個(gè)系列分十篇文章,目錄結(jié)構(gòu)如下:

  1. 環(huán)境搭建:帶你十天輕松搞定 Go 微服務(wù)系列(一)
  2. 服務(wù)拆分:帶你十天輕松搞定 Go 微服務(wù)系列(二)
  3. 用戶服務(wù):帶你十天輕松搞定 Go 微服務(wù)系列(三)
  4. 產(chǎn)品服務(wù):帶你十天輕松搞定 Go 微服務(wù)系列(四)
  5. 訂單服務(wù):帶你十天輕松搞定 Go 微服務(wù)系列(五)
  6. 支付服務(wù)(本文)
  7. RPC 服務(wù) Auth 驗(yàn)證
  8. 服務(wù)監(jiān)控
  9. 鏈路追蹤
  10. 分布式事務(wù)

期望通過本系列帶你在本機(jī)利用 Docker 環(huán)境利用 go-zero 快速開發(fā)一個(gè)商城系統(tǒng),讓你快速上手微服務(wù)。

完整示例代碼:https://github.com/nivin-studio/go-zero-mall

首先,我們來看一下整體的服務(wù)拆分圖:

6 支付服務(wù)(pay)

  • 進(jìn)入服務(wù)工作區(qū)
$?cd?mall/service/pay

6.1 生成 pay model 模型

  • 創(chuàng)建 sql 文件
$?vim?model/pay.sql
  • 編寫 sql 文件
CREATE?TABLE?`pay`?(
?`id`?bigint?unsigned?NOT?NULL?AUTO_INCREMENT,
?`uid`?bigint?unsigned?NOT?NULL?DEFAULT?'0'?COMMENT?'用戶ID',
?`oid`?bigint?unsigned?NOT?NULL?DEFAULT?'0'?COMMENT?'訂單ID',
?`amount`?int(10)?unsigned?NOT?NULL?DEFAULT?'0'??COMMENT?'產(chǎn)品金額',
?`source`?tinyint(3)?unsigned?NOT?NULL?DEFAULT?'0'?COMMENT?'支付方式',
?`status`?tinyint(3)?unsigned?NOT?NULL?DEFAULT?'0'?COMMENT?'支付狀態(tài)',
?`create_time`?timestamp?NULL?DEFAULT?CURRENT_TIMESTAMP,
?`update_time`?timestamp?NULL?DEFAULT?CURRENT_TIMESTAMP?ON?UPDATE?CURRENT_TIMESTAMP,
?PRIMARY?KEY?(`id`),
?KEY?`idx_uid`?(`uid`),
?KEY?`idx_oid`?(`oid`)
)?ENGINE=InnoDB??DEFAULT?CHARSET=utf8mb4;
  • 運(yùn)行模板生成命令
$?goctl?model?mysql?ddl?-src?./model/pay.sql?-dir?./model?-c

6.2 生成 pay api 服務(wù)

  • 創(chuàng)建 api 文件
$?vim?api/pay.api
  • 編寫 api 文件
type?(
?//?支付創(chuàng)建
?CreateRequest?{
??Uid????int64?`json:"uid"`
??Oid????int64?`json:"oid"`
??Amount?int64?`json:"amount"`
?}
?CreateResponse?{
??Id?int64?`json:"id"`
?}
?//?支付創(chuàng)建

?//?支付詳情
?DetailRequest?{
??Id?int64?`json:"id"`
?}
?DetailResponse?{
??Id?????int64?`json:"id"`
??Uid????int64?`json:"uid"`
??Oid????int64?`json:"oid"`
??Amount?int64?`json:"amount"`
??Source?int64?`json:"source"`
??Status?int64?`json:"status"`
?}
?//?支付詳情

?//?支付回調(diào)
?CallbackRequest?{
??Id?????int64?`json:"id"`
??Uid????int64?`json:"uid"`
??Oid????int64?`json:"oid"`
??Amount?int64?`json:"amount"`
??Source?int64?`json:"source"`
??Status?int64?`json:"status"`
?}
?CallbackResponse?{
?}
?//?支付回調(diào)

)

@server(
?jwt:?Auth
)
service?Pay?{
?@handler?Create
?post?/api/pay/create(CreateRequest)?returns?(CreateResponse)
?
?@handler?Detail
?post?/api/pay/detail(DetailRequest)?returns?(DetailResponse)
?
?@handler?Callback
?post?/api/pay/callback(CallbackRequest)?returns?(CallbackResponse)
}
  • 運(yùn)行模板生成命令
$?goctl?api?go?-api?./api/pay.api?-dir?./api

6.3 生成 pay rpc 服務(wù)

  • 創(chuàng)建 proto 文件
$?vim?rpc/pay.proto
  • 編寫 proto 文件
syntax = "proto3";

package payclient;

option go_package = "pay";

// 支付創(chuàng)建
message CreateRequest {
int64 Uid = 1;
int64 Oid = 2;
int64 Amount = 3;
}
message CreateResponse {
int64 id = 1;
}
// 支付創(chuàng)建

// 支付詳情
message DetailRequest {
int64 id = 1;
}
message DetailResponse {
int64 id = 1;
int64 Uid = 2;
int64 Oid = 3;
int64 Amount = 4;
int64 Source = 5;
int64 Status = 6;
}
// 支付詳情

// 支付詳情
message CallbackRequest {
int64 id = 1;
int64 Uid = 2;
int64 Oid = 3;
int64 Amount = 4;
int64 Source = 5;
int64 Status = 6;
}
message CallbackResponse {
}
// 支付詳情


service Pay {
rpc Create(CreateRequest) returns(CreateResponse);
rpc Detail(DetailRequest) returns(DetailResponse);
rpc Callback(CallbackRequest) returns(CallbackResponse);
}
  • 運(yùn)行模板生成命令
$?goctl?rpc?proto?-src?./rpc/pay.proto?-dir?./rpc

6.4 編寫 pay rpc 服務(wù)

6.4.1 修改配置文件

  • 修改 pay.yaml 配置文件
$?vim?rpc/etc/pay.yaml
  • 修改服務(wù)監(jiān)聽地址,端口號(hào)為0.0.0.0:9003,Etcd 服務(wù)配置,Mysql 服務(wù)配置,CacheRedis 服務(wù)配置
Name:?pay.rpc
ListenOn:?0.0.0.0:9003

Etcd:
??Hosts:
??-?etcd:2379
??Key:?pay.rpc

Mysql:
??DataSource:?root:123456@tcp(mysql:3306)/mall?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai

CacheRedis:
-?Host:?redis:6379
??Type:?node
??Pass:

6.4.2 添加 pay model 依賴

  • 添加 Mysql 服務(wù)配置,CacheRedis 服務(wù)配置的實(shí)例化
$?vim?rpc/internal/config/config.go
package?config

import?(
?"github.com/tal-tech/go-zero/core/stores/cache"
?"github.com/tal-tech/go-zero/zrpc"
)

type?Config?struct?{
?zrpc.RpcServerConf

?Mysql?struct?{
??DataSource?string
?}
????
?CacheRedis?cache.CacheConf
}
  • 注冊(cè)服務(wù)上下文 pay model 的依賴
$?vim?rpc/internal/svc/servicecontext.go
package?svc

import?(
?"mall/service/pay/model"
?"mall/service/pay/rpc/internal/config"

?"github.com/tal-tech/go-zero/core/stores/sqlx"
)

type?ServiceContext?struct?{
?Config?config.Config
????
?PayModel?model.PayModel
}

func?NewServiceContext(c?config.Config)?*ServiceContext?{
?conn?:=?sqlx.NewMysql(c.Mysql.DataSource)
?return?&ServiceContext{
??Config:???c,
??PayModel:?model.NewPayModel(conn,?c.CacheRedis),
?}
}

6.4.3 添加 user rpc,order rpc 依賴

  • 添加 user rpc, order rpc 服務(wù)配置
$?vim?rpc/etc/pay.yaml
Name:?pay.rpc
ListenOn:?0.0.0.0:9003
Etcd:
??Hosts:
??-?etcd:2379
??Key:?pay.rpc

...

UserRpc:
??Etcd:
????Hosts:
????-?etcd:2379
????Key:?user.rpc

OrderRpc:
??Etcd:
????Hosts:
????-?etcd:2379
????Key:?order.rpc
  • 添加 user rpc, order rpc 服務(wù)配置的實(shí)例化
$?vim?rpc/internal/config/config.go
package?config

import?(
?"github.com/tal-tech/go-zero/core/stores/cache"
?"github.com/tal-tech/go-zero/zrpc"
)

type?Config?struct?{
?zrpc.RpcServerConf

?Mysql?struct?{
??DataSource?string
?}
????
?CacheRedis?cache.CacheConf

?UserRpc??zrpc.RpcClientConf
?OrderRpc?zrpc.RpcClientConf
}
  • 注冊(cè)服務(wù)上下文 user rpc, order rpc 的依賴
$?vim?rpc/internal/svc/servicecontext.go
package?svc

import?(
?"mall/service/order/rpc/orderclient"
?"mall/service/pay/model"
?"mall/service/pay/rpc/internal/config"
?"mall/service/user/rpc/userclient"

?"github.com/tal-tech/go-zero/core/stores/sqlx"
?"github.com/tal-tech/go-zero/zrpc"
)

type?ServiceContext?struct?{
?Config?config.Config
????
?PayModel?model.PayModel

?UserRpc??userclient.User
?OrderRpc?orderclient.Order
}

func?NewServiceContext(c?config.Config)?*ServiceContext?{
?conn?:=?sqlx.NewMysql(c.Mysql.DataSource)
?return?&ServiceContext{
??Config:???c,
??PayModel:?model.NewPayModel(conn,?c.CacheRedis),
??UserRpc:??userclient.NewUser(zrpc.MustNewClient(c.UserRpc)),
??OrderRpc:?orderclient.NewOrder(zrpc.MustNewClient(c.OrderRpc)),
?}
}

6.4.4 添加支付創(chuàng)建邏輯 Create

  • 添加根據(jù) oid 查詢訂單支付記錄 PayModel 方法 FindOneByOid
$?vim?model/paymodel.go
package?model

...

var?(
?...

?cachePayIdPrefix??=?"cache:pay:id:"
?cachePayOidPrefix?=?"cache:pay:oid:"
)

type?(
?PayModel?interface?{
??Insert(data?*Pay)?(sql.Result,?error)
??FindOne(id?int64)?(*Pay,?error)
??FindOneByOid(oid?int64)?(*Pay,?error)
??Update(data?*Pay)?error
??Delete(id?int64)?error
?}

?...
)

...

func?(m?*defaultPayModel)?FindOneByOid(oid?int64)?(*Pay,?error)?{
?payOidKey?:=?fmt.Sprintf("%s%v",?cachePayOidPrefix,?oid)
?var?resp?Pay
?err?:=?m.QueryRow(&resp,?payOidKey,?func(conn?sqlx.SqlConn,?v?interface{})?error?{
??query?:=?fmt.Sprintf("select?%s?from?%s?where?`oid`?=???limit?1",?payRows,?m.table)
??return?conn.QueryRow(v,?query,?oid)
?})
?switch?err?{
?case?nil:
??return?&resp,?nil
?case?sqlc.ErrNotFound:
??return?nil,?ErrNotFound
?default:
??return?nil,?err
?}
}

......
  • 添加支付創(chuàng)建邏輯

    支付流水創(chuàng)建流程,通過調(diào)用 user rpc 服務(wù)查詢驗(yàn)證用戶是否存在,再通過調(diào)用 order rpc 服務(wù)查詢驗(yàn)證訂單是否存在,然后通過查詢庫判斷此訂單是否已經(jīng)創(chuàng)建過支付流水,最后創(chuàng)建落庫。

$?vim?rpc/internal/logic/createlogic.go
package?logic

import?(
?"context"

?"mall/service/order/rpc/order"
?"mall/service/pay/model"
?"mall/service/pay/rpc/internal/svc"
?"mall/service/pay/rpc/pay"
?"mall/service/user/rpc/user"

?"github.com/tal-tech/go-zero/core/logx"
?"google.golang.org/grpc/status"
)

type?CreateLogic?struct?{
?ctx????context.Context
?svcCtx?*svc.ServiceContext
?logx.Logger
}

func?NewCreateLogic(ctx?context.Context,?svcCtx?*svc.ServiceContext)?*CreateLogic?{
?return?&CreateLogic{
??ctx:????ctx,
??svcCtx:?svcCtx,
??Logger:?logx.WithContext(ctx),
?}
}

func?(l?*CreateLogic)?Create(in?*pay.CreateRequest)?(*pay.CreateResponse,?error)?{
?//?查詢用戶是否存在
?_,?err?:=?l.svcCtx.UserRpc.UserInfo(l.ctx,?&user.UserInfoRequest{
??Id:?in.Uid,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?//?查詢訂單是否存在
?_,?err?=?l.svcCtx.OrderRpc.Detail(l.ctx,?&order.DetailRequest{
??Id:?in.Oid,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?//?查詢訂單是否已經(jīng)創(chuàng)建支付
?_,?err?=?l.svcCtx.PayModel.FindOneByOid(in.Oid)
?if?err?==?nil?{
??return?nil,?status.Error(100,?"訂單已創(chuàng)建支付")
?}

?newPay?:=?model.Pay{
??Uid:????in.Uid,
??Oid:????in.Oid,
??Amount:?in.Amount,
??Source:?0,
??Status:?0,
?}

?res,?err?:=?l.svcCtx.PayModel.Insert(&newPay)
?if?err?!=?nil?{
??return?nil,?status.Error(500,?err.Error())
?}

?newPay.Id,?err?=?res.LastInsertId()
?if?err?!=?nil?{
??return?nil,?status.Error(500,?err.Error())
?}

?return?&pay.CreateResponse{
??Id:?newPay.Id,
?},?nil
}

6.4.5 添加支付詳情邏輯 Detail

$?vim?rpc/internal/logic/detaillogic.go
package?logic

import?(
?"context"

?"mall/service/pay/model"
?"mall/service/pay/rpc/internal/svc"
?"mall/service/pay/rpc/pay"

?"github.com/tal-tech/go-zero/core/logx"
?"google.golang.org/grpc/status"
)

type?DetailLogic?struct?{
?ctx????context.Context
?svcCtx?*svc.ServiceContext
?logx.Logger
}

func?NewDetailLogic(ctx?context.Context,?svcCtx?*svc.ServiceContext)?*DetailLogic?{
?return?&DetailLogic{
??ctx:????ctx,
??svcCtx:?svcCtx,
??Logger:?logx.WithContext(ctx),
?}
}

func?(l?*DetailLogic)?Detail(in?*pay.DetailRequest)?(*pay.DetailResponse,?error)?{
?//?查詢支付是否存在
?res,?err?:=?l.svcCtx.PayModel.FindOne(in.Id)
?if?err?!=?nil?{
??if?err?==?model.ErrNotFound?{
???return?nil,?status.Error(100,?"支付不存在")
??}
??return?nil,?status.Error(500,?err.Error())
?}

?return?&pay.DetailResponse{
??Id:?????res.Id,
??Uid:????res.Uid,
??Oid:????res.Oid,
??Amount:?res.Amount,
??Source:?res.Source,
??Status:?res.Status,
?},?nil
}

6.4.6 添加支付回調(diào)邏輯 Callback

支付流水回調(diào)流程,通過調(diào)用 user rpc 服務(wù)查詢驗(yàn)證用戶是否存在,再通過調(diào)用 order rpc 服務(wù)查詢驗(yàn)證訂單是否存在,然后通過查詢庫判斷此訂單支付流水是否存在,以及回調(diào)支付金額和庫中流水支付金額是否一致,最后更新支付流水狀態(tài)和通過調(diào)用 order rpc 服務(wù)更新訂單狀態(tài)。

$?vim?rpc/internal/logic/callbacklogic.go
package?logic

import?(
?"context"

?"mall/service/order/rpc/order"
?"mall/service/pay/model"
?"mall/service/pay/rpc/internal/svc"
?"mall/service/pay/rpc/pay"
?"mall/service/user/rpc/user"

?"github.com/tal-tech/go-zero/core/logx"
?"google.golang.org/grpc/status"
)

type?CallbackLogic?struct?{
?ctx????context.Context
?svcCtx?*svc.ServiceContext
?logx.Logger
}

func?NewCallbackLogic(ctx?context.Context,?svcCtx?*svc.ServiceContext)?*CallbackLogic?{
?return?&CallbackLogic{
??ctx:????ctx,
??svcCtx:?svcCtx,
??Logger:?logx.WithContext(ctx),
?}
}

func?(l?*CallbackLogic)?Callback(in?*pay.CallbackRequest)?(*pay.CallbackResponse,?error)?{
?//?查詢用戶是否存在
?_,?err?:=?l.svcCtx.UserRpc.UserInfo(l.ctx,?&user.UserInfoRequest{
??Id:?in.Uid,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?//?查詢訂單是否存在
?_,?err?=?l.svcCtx.OrderRpc.Detail(l.ctx,?&order.DetailRequest{
??Id:?in.Oid,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?//?查詢支付是否存在
?res,?err?:=?l.svcCtx.PayModel.FindOne(in.Id)
?if?err?!=?nil?{
??if?err?==?model.ErrNotFound?{
???return?nil,?status.Error(100,?"支付不存在")
??}
??return?nil,?status.Error(500,?err.Error())
?}
?//?支付金額與訂單金額不符
?if?in.Amount?!=?res.Amount?{
??return?nil,?status.Error(100,?"支付金額與訂單金額不符")
?}

?res.Source?=?in.Source
?res.Status?=?in.Status

?err?=?l.svcCtx.PayModel.Update(res)
?if?err?!=?nil?{
??return?nil,?status.Error(500,?err.Error())
?}

?//?更新訂單支付狀態(tài)
?_,?err?=?l.svcCtx.OrderRpc.Paid(l.ctx,?&order.PaidRequest{
??Id:?in.Oid,
?})
?if?err?!=?nil?{
??return?nil,?status.Error(500,?err.Error())
?}

?return?&pay.CallbackResponse{},?nil
}

6.5 編寫 pay api 服務(wù)

6.5.1 修改配置文件

  • 修改 pay.yaml 配置文件
$?vim?api/etc/pay.yaml
  • 修改服務(wù)地址,端口號(hào)為0.0.0.0:8003,Mysql 服務(wù)配置,CacheRedis 服務(wù)配置,Auth 驗(yàn)證配置
Name:?Pay
Host:?0.0.0.0
Port:?8003

Mysql:
??DataSource:?root:123456@tcp(mysql:3306)/mall?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai

CacheRedis:
-?Host:?redis:6379
??Type:?node
??Pass:

Auth:
??AccessSecret:?uOvKLmVfztaXGpNYd4Z0I1SiT7MweJhl
??AccessExpire:?86400

6.5.2 添加 pay rpc 依賴

  • 添加 pay rpc 服務(wù)配置
$?vim?api/etc/pay.yaml
Name:?Pay
Host:?0.0.0.0
Port:?8003

......

PayRpc:
??Etcd:
????Hosts:
????-?etcd:2379
????Key:?pay.rpc
  • 添加 pay rpc 服務(wù)配置的實(shí)例化
$?vim?api/internal/config/config.go
package?config

import?(
?"github.com/tal-tech/go-zero/rest"
?"github.com/tal-tech/go-zero/zrpc"
)

type?Config?struct?{
?rest.RestConf

?Auth?struct?{
??AccessSecret?string
??AccessExpire?int64
?}

?PayRpc?zrpc.RpcClientConf
}
  • 注冊(cè)服務(wù)上下文 pay rpc 的依賴
$?vim?api/internal/svc/servicecontext.go
package?svc

import?(
?"mall/service/pay/api/internal/config"
?"mall/service/pay/rpc/payclient"

?"github.com/tal-tech/go-zero/zrpc"
)

type?ServiceContext?struct?{
?Config?config.Config
????
?PayRpc?payclient.Pay
}

func?NewServiceContext(c?config.Config)?*ServiceContext?{
?return?&ServiceContext{
??Config:?c,
??PayRpc:?payclient.NewPay(zrpc.MustNewClient(c.PayRpc)),
?}
}

6.5.3 添加支付創(chuàng)建邏輯 Create

$?vim?api/internal/logic/createlogic.go
package?logic

import?(
?"context"

?"mall/service/pay/api/internal/svc"
?"mall/service/pay/api/internal/types"
?"mall/service/pay/rpc/pay"

?"github.com/tal-tech/go-zero/core/logx"
)

type?CreateLogic?struct?{
?logx.Logger
?ctx????context.Context
?svcCtx?*svc.ServiceContext
}

func?NewCreateLogic(ctx?context.Context,?svcCtx?*svc.ServiceContext)?CreateLogic?{
?return?CreateLogic{
??Logger:?logx.WithContext(ctx),
??ctx:????ctx,
??svcCtx:?svcCtx,
?}
}

func?(l?*CreateLogic)?Create(req?types.CreateRequest)?(resp?*types.CreateResponse,?err?error)?{
?res,?err?:=?l.svcCtx.PayRpc.Create(l.ctx,?&pay.CreateRequest{
??Uid:????req.Uid,
??Oid:????req.Oid,
??Amount:?req.Amount,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?return?&types.CreateResponse{
??Id:?res.Id,
?},?nil
}

6.5.4 添加支付詳情邏輯 Detail

$?vim?api/internal/logic/detaillogic.go
package?logic

import?(
?"context"

?"mall/service/pay/api/internal/svc"
?"mall/service/pay/api/internal/types"
?"mall/service/pay/rpc/pay"

?"github.com/tal-tech/go-zero/core/logx"
)

type?DetailLogic?struct?{
?logx.Logger
?ctx????context.Context
?svcCtx?*svc.ServiceContext
}

func?NewDetailLogic(ctx?context.Context,?svcCtx?*svc.ServiceContext)?DetailLogic?{
?return?DetailLogic{
??Logger:?logx.WithContext(ctx),
??ctx:????ctx,
??svcCtx:?svcCtx,
?}
}

func?(l?*DetailLogic)?Detail(req?types.DetailRequest)?(resp?*types.DetailResponse,?err?error)?{
?res,?err?:=?l.svcCtx.PayRpc.Detail(l.ctx,?&pay.DetailRequest{
??Id:?req.Id,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?return?&types.DetailResponse{
??Id:?????req.Id,
??Uid:????res.Uid,
??Oid:????res.Oid,
??Amount:?res.Amount,
??Source:?res.Source,
??Status:?res.Status,
?},?nil
}

6.5.5 添加支付回調(diào)邏輯 Callback

$?vim?api/internal/logic/callbacklogic.go
package?logic

import?(
?"context"

?"mall/service/pay/api/internal/svc"
?"mall/service/pay/api/internal/types"
?"mall/service/pay/rpc/pay"

?"github.com/tal-tech/go-zero/core/logx"
)

type?CallbackLogic?struct?{
?logx.Logger
?ctx????context.Context
?svcCtx?*svc.ServiceContext
}

func?NewCallbackLogic(ctx?context.Context,?svcCtx?*svc.ServiceContext)?CallbackLogic?{
?return?CallbackLogic{
??Logger:?logx.WithContext(ctx),
??ctx:????ctx,
??svcCtx:?svcCtx,
?}
}

func?(l?*CallbackLogic)?Callback(req?types.CallbackRequest)?(resp?*types.CallbackResponse,?err?error)?{
?_,?err?=?l.svcCtx.PayRpc.Callback(l.ctx,?&pay.CallbackRequest{
??Id:?????req.Id,
??Uid:????req.Uid,
??Oid:????req.Oid,
??Amount:?req.Amount,
??Source:?req.Source,
??Status:?req.Status,
?})
?if?err?!=?nil?{
??return?nil,?err
?}

?return?&types.CallbackResponse{},?nil
}

6.6 啟動(dòng) pay rpc 服務(wù)

提示:啟動(dòng)服務(wù)需要在 golang 容器中啟動(dòng)

$?cd?mall/service/pay/rpc
$?go?run?pay.go?-f?etc/pay.yaml
Starting?rpc?server?at?127.0.0.1:9003...

6.7 啟動(dòng) pay api 服務(wù)

提示:啟動(dòng)服務(wù)需要在 golang 容器中啟動(dòng)

$?cd?mall/service/pay/api
$?go?run?pay.go?-f?etc/pay.yaml
Starting?server?at?0.0.0.0:8003...

項(xiàng)目地址

https://github.com/zeromicro/go-zero

歡迎使用 go-zerostar 支持我們!



推薦閱讀


福利

我為大家整理了一份從入門到進(jìn)階的Go學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。關(guān)注公眾號(hào) 「polarisxu」,回復(fù)?ebook?獲??;還可以回復(fù)「進(jìn)群」,和數(shù)萬 Gopher 交流學(xué)習(xí)。

瀏覽 56
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 九九精品视频在线播放| 黄色电影天堂| 麻豆成人精品国产免费| AV午夜| 在线视频一区二区三区四区| 99精品视频免费在线观看| 粉嫩小泬粉嫩小泬在线| 日韩A级片| 一级a性色毛片| 五月丁香婷婷久久| 天天综合字幕一区二区| 黄色片网站| 婷婷五月色| 日韩国产在线| 农村一级婬片A片AAA毛片古装| 中文字幕乱码人妻二区三区| 人人看人人澡| 视频一区乳奴| 99久在线精品99re8热| 天天色粽合合合合合合合| 波多野结衣大战黑人| A级免费毛片| 97精品视频在线观看| 亚洲精品99| 汇聚全球淫荡熟女| 丁香色五月婷婷| 国产精品一区二区AV日韩在线| 亚洲无码电影在线| 成人免费激情视频| 天天爱天天爽| 搡中国东北老女人视频| 亚洲无码一区二区三区| 黄色国产视频在线观看| 色爽AV| 国产成人精品a区在线观看| 日逼视频免费| 香蕉成人网站| 欧美性xxxxx| 四川少妇bbb| 美女一级变态毛片| 免费在线a| 国产日韩欧美在线观看| av女人的天堂| 91人妻无码一区二区久久| 美腿丝袜中文字幕精品| 午夜成人国产| 国产第一页在线观看| 鸡巴网站| 亚州无码| 精品国产三级| 狠狠操综合| 在线视频日本| 台湾色综合| 漂亮人妻吃鸡啪啪哥哥真的好| 在线激情| 8050午夜一级| 国产成人一区二区| 国产午夜视频| 免费的黄色录像| 亚洲欧洲在线播放| 中文字幕人妻精品一区| 亚洲人妻电影| 日韩成年视频| 一级免费爱爱| 日屄视频免费看| 久久久久99精品成人网站| AAA久久久| 黄色视频大全免费看| 欧美熟妇高潮流白浆| 91色逼| AV无码一区| 午夜无码鲁丝片午夜精品| 91九色在线观看| 天天撸一撸视频| 蜜臀AV午夜精品| 天天干狠狠| 亚洲AV电影网| 成人视频在线观看免费| 亚洲日韩一区二区| 麻豆天美传媒AV果冻传媒| 翔田千里无码视频| 青娱乐超碰| 日本内射在线观看| 欧美一级AA大片免费看视频| 国产女人高潮毛片| 亚洲免费观看高清完整| 男人天堂无码av| 欧美日本亚洲| 国产乱伦免费| 婷婷开心色四房播播在线| 无码网站内射| 天堂网2025| 无码视频免费在线观看| 日韩高清在线播放| 四个熟妇搡BBBB搡BBBB| 欧美日韩一区在线观看| 91黄网站在线观看| 一级调教看片| 长腿女神打扫偷懒被主人猛操惩罚 | 手机在线毛片| av资源在线看| 成人在线免费观看视频| 99热在线观看免费精品| 色色网站在线观看| 国产AV一区二区三区四区五区| 操逼导航| 可以免费看的AV| 999在线视频| 青娱乐日韩| 国产成人无码精免费视频| 欧美在线观看一区二区| 成人av中文字幕| 黄色在线播放| 岛国AV免费在线| 人妻人人爽| 久操成人| 亚洲午夜在线| AV天堂亚洲| 美女三片| 麻豆av人人乐| 九九九九九九国产| 操逼91视频| a视频在线| 91做爱| 高H视频在线观看| 国产h在线播放| 欧美熟女一区| 精品国内自产拍在线观看视频| 丁香五月欧美激情| 麻豆精品视频| 欧美三级在线| 91精品电影18| 四虎黄色网| 一级A爱爱| 国产AV一区二区三区精品| 肏屄视频免费观看| 超碰在线人人| 麻豆影音先锋| 污网址| 亚洲色图p| 国产真实乱婬A片久久久老牛| 伊人久久国产| 人妻体体内射精一区二区| 天天干天天干| 蜜挑视频一区二区三区| 黄色无無| 日韩操B| 女BBBBBB女BBB| 淫荡人妻视频| 久久精品波多野结衣| 国产乱伦精品视频| 三级av在线| 人人天天操| 大香蕉伊人色| 日韩中文字幕视频| 国产av一区二区三区| 婷婷精品| 欧美一页| 少妇探花| 亚洲精品国产精品乱码不卡√香蕉| 操逼影视| 玖玖色视频| 亚洲无码综合| 强伦轩一区二区三区四区| 玖玖色视频| 北条麻妃一区二区三区-免费免费高清观看 | 亚洲国产成人综合| 三级片导航| 爱爱视频免费网站| 久久久国产一区二区三区| 东京热一区二区| A在线视频| 性爱一级片| 高清无码成人视频| 91精品国产闺蜜国产在线闺蜜 | 91爱爱com| 青青草精品视频| 18成人网站在线观看| 久色视频福利| 国产色无码网站www色视频| 日本成人高清视频| 日韩毛片大全| 在线高清无码不卡| 国内无码| 丁香五月影院| 在线a免费| 屁屁影院CCYYCOM国产| 大香蕉最新国产2025| 久久精品国产亚洲| 闺蜜av| 久久久久久久久毛片| 国产无码av| 日韩高清无码中文字幕| 欧美久久精品| 俺来也俺去也www色官网| 青青草性爱| 欧美熟妇擦BBBB擦BBBB| se99av| 欧美熟妇精品一级A片视色| 国产精品久久久999| 四虎2025在线51| 日韩欧美二区| 一本色道久久综合无码人妻软件| 亚洲精品在线视频观看| 成人性爱视频免费在线观看| 午夜成人福利视频在线观看| 97超碰人人| 国产伊人大香蕉| 国产情侣在线视频| 黄色国产免费| 91.www91成人影视在线观看91成人网址9| 无码人妻AV一区| AA精品| 影音先锋成人在线| 在线免费A片| 91av免费| 日日摸夜夜| 人妻中文字幕av| aV无码av天天aV天天爽第一| yOujiZZ欧美精品| 最新国产AV| AV中文字幕在线播放| 亚洲色射| 国产精品自拍三级| 日比视频网站| 人操人操人操| 苍井空视频| 爱爱中文字幕| 久久久久久无码视频| 日AV在线无| 亚洲乱伦| 无码免费播放| 黄网站免费观看| 97国产超碰| 国产又爽又黄在线看视频| 内射熟妇| 男女成人视频| 97人人干人人| 男女性爱视频网站| 99精品视频免费在线观看| AV手机天堂| 蜜桃黄色视频| 欧美成人综合色| 成人无码自拍| 国产午夜福利视频在线观看| 胖老板办公室沙发无套爆秘书| 黄色三级视频| 国产熟女视频| 免费黄色网址啊不卡| 成人免费A片| 午夜av无码| 男女AV| 国产第四页| 亚洲黄色免费网站| 中文无码日本一级A片久久影视| 西西人体444rt高清大胆模特| 国产视频一区二区三区四区五区| 欧亚免费视频| 激情婷婷网| 精品久久大香蕉| 黄色av网| 国产精品每日更新| 亚洲无码视频在线免费观看| 亚洲在线成人视频| 国产香蕉视频在线观看| 日本爱爱免费| jizzjizz欧美| 伊人久久免费视频| 欧美成人手机在线| 青青无码| 国产最新视频| 欧美精品无码| 大香蕉伊在线观看| 在线观看日韩三级片av| 亚洲AV色香蕉一区二区三区| 亚洲AV无码第一区二区三区蜜桃| 91九色麻豆| 免费日批网站| 久热精品在线观看视频| 麻豆高清无码| 成人午夜无码福利视频| 五月丁香花| 熟女视频网站| 成人视频免费| 免费a视频| www.男人的天堂| 91人人澡人人爽人人看| 欧美亚洲色色网视频| 亚洲理论在线| 中文字幕精品一级A片| 久久这里只有精品9| 国精产品一二三区| 麻豆AV在线播放| 精品人妻无码一区二区三区四川人 | 亚洲自拍小说| 成人免看一级a一片A片| 国产精品国产精品国产专区不片| 婷婷视频| 亚洲精品一区二区三区蜜桃 | 伊人69| 97香蕉久久国产超碰青草专区 | 日韩在线高清视频| 黄色的视频网站| 六月婷婷网| 东方成人av| 黄片视频链接| 永久免费无码中文字幕| 婷婷色图| 亚洲精品一级| 黄色A级毛片| 亚洲精品少妇| 毛片毛片毛片毛片毛片毛片| 北条麻妃精品青青久久价格| 国产精品播放| 青青草无码在线视频| 老熟女伦一区二区三区| 91精品电影18| 久久精品五月天| 成人国产在线观看| 啪啪成人视频| 3D动漫啪啪精品一区二区中文字幕 | 高清无码视频18| 91人妻人人操| 国产aaaaaaaaaa| 麻豆视频一区二区| 亚洲一二期视频| 国产91探花精品一区二区| 狠狠婷婷| 国产精品乱草| 日韩欧美一级二级| 日本少妇无码| 黑人av在线观看| 成人网站欧美| 日本久久久| 德国肥妇熟妇BBwBBw| 国产乱子伦精品久久| av片在线观看| 北条麻妃一区二区三区在线| 日本高清久久| 99在线视频精品| 欧美中文字幕| 91视频网站免费| 欧美八区| 亚洲高清无码电影| 亚洲无码高清在线视频| 亚洲成人av在线观看| 99精品视频在线观看| 午夜天堂在线| 欧美一级特黄A片免费| 18禁网址| 国产乱子伦一区二区三| 五月婷婷六月色| 操逼A片| 国产思思99re99在线观看| 成人毛片100免费观看| 狠狠的操| 无码人妻蜜桃| 国产综合av| 北条麻妃99精彩视频| 黄在线免费观看| 亚洲日韩中文字幕在线| 成人中文字幕无码| 可以免费看AV的网站| 在线无码| 少妇4p| 人人摸人人干人人操| 四川少妇搡bbbb搡bbbb| 无码欧洲| 日本熟女视频| 一区二区三区日本| 欧美日韩在线免费| 少妇三级| 国产日韩欧美综合在线| 加勒比黑人和翔田千里在线播放| 人人爱人人摸人人操| 久久人妻中文字幕| 成人一级黄色电影| 国产黄片免费在线观看| 精品无码一区二区三区| 日韩在线看片| 操逼免费观看| 啪啪啪网址| 日本高清无码视频| 黄色免费福利视频| 天天拍天天操| 国产精品51麻豆cm传媒| 午夜福利在线视频| 国产卡一卡二在线观看| 国产精品蜜| 日韩一级一级一级| 成人AV中文字幕| 中文大香蕉视频| 黄色视频在线观看国产| 午夜影院操| 国产精品夜夜爽7777777| 久久久久久黄片| 一级a一级a免费观看视频Al明星 | 欧美A级成人婬片免费看| 久久久久成人片免费观看蜜芽| 综合自拍偷拍| 日韩熟妇无码中文字幕| 99视频免费在线| 一级特黄AAAA片| 91丨国产丨白丝| 成人性爱网站| 蜜臀久久99精品久久久久酒店更新时间 | 91人妻在线| 四川BBB搡BBB爽爽爽电影| 另类老妇奶性生BBwBB| 欧洲美一区二区三区亚洲| 色高清无码免费视频| 午夜在线免费视频| 99青青草| 亚洲欧美精品在线| 高清无码成人视频| 大香蕉av在线| 亚洲成色A片77777在线小说| 手机毛片在线播放| 夜夜嗨AV一区二区三区| 国产成人午夜视频| 夜夜欢天天干| 久久在线| 黄色日逼视频| 五月天成人小说| 理论三级片| AV天天看| 影音先锋婷婷| 強姧伦一区二区三区在线播放| 亚洲午夜激情| 欧美偷拍| 久久国产欧美| 欧美日韩岛国| 国产精品秘久久久久久免费播放| 精品人伦一区二区三区| 无码婬片A片AAA毛片艳谭| 色噜噜av| 国产波霸爆乳一区二区| 欧美精品秘一区二区三区蜜臀| 国产成人精品一区二区三区视频| 国产视频在线免费观看| 天天搞天天搞| 肏逼网站在线观看| 亚洲第一色网站| 手机在线看A片| 97av在线| 六月伊人| 91在线网址| 日本黄色a片| 人人操在线公开| 大香蕉伊人在线观看视频| 成人精品一区二区三区无码视频| 欧美操B在线| 亚洲精品内射| 美女网站黄色| 广西少妇BBwBBwBBw| 黃色一级一片免费播放| 亚洲精品第一页| 久久成人无码电影| 日本性爱网址| 国产精品久久久久久久久久乐趣播| 日韩免费中文字幕| 乱伦一区二区三区| 亚洲欧洲有码在线| 亚洲精品资源| 国产三级小视频| 国产系列精品AV| 免费无码婬片A片AA片| 91麻豆成人| 少妇高潮喷水| 安徽妇搡BBBB搡BBBB按摩| 五月丁香婷婷激情综合| 大香蕉操逼| 成年人黄色电影| 无码在线观看免费| 日韩欧美国产成人| 免费黄色| 中文字幕人妻互换av久久| 美日韩一区二区三区| 北条麻妃九九九精品视频免费观看| 成人视频免费在线观看| 国产主播在线播放| 亚洲无码精品专区| 欧美日韩人妻高清中文| A一级黄色| 色婷婷激情AV| 无码一二三四| 91麻豆精品无码人妻| 日韩潮喷| 一级调教看片| 一区二区三区电影高清电影免费观看| 中文字字幕在线中文| 色五月天导航| 波多野结衣无码流出| 大香蕉中文在线| 欧美亚洲中文字幕| 欧美熟妇搡BBBB搡BBBBB| 99久久综合国产精品二区| 性BBwBBwBBwBBw禽| 日韩人妻丝袜中文字幕| 午夜人妻AV| 狠狠狠狠狠狠狠狠狠狠| 无码伦理电影| 成人A片一级| 无码视频在线看| 东京热91| 黑人AV在线观看| 无码色网| 国产欧美一| 亚洲精品97| 99偷拍| 亚洲图片欧美色图| 免费福利在线观看| 亚洲一卡二卡| 欧美精品一二三| 波多野结衣国产| 97大香蕉视频| 亚洲中文免费视频| 四个熟妇搡BBBB搡BBBB| 成人久久久久一级大黄毛片中国 | 青青草免费在线观看| 影音先锋三区| 天天射天天日天天干| 婷婷五月六月| 激情黄色毛片| 国产精品无码激情视频| 国产另类自拍| 大香蕉88| 成人一区二区电影| 免费av中文字幕| 一级视频免费观看| 黄色激情av| 日韩成人AV在线播放| 国产一区二区00000视频| 在线看片AV| 久操视频一区二区三区| 精品国产AV| 91视频播放| 欧美级毛片一进一出| 国产一级a毛一级做a爱| 国精产品一区一区三区| 亚洲视频a| 人妻福利导航| 一道本高清无码视频| 日韩无码五月天| 午夜特片| 另类TS人妖一区二区三区| 欧美老妇另类BBwBBw| 日韩乱伦网站| 99久久9| 91在线无码精品入口电车| 久久婷婷无码视频| 亚洲中文字幕无码在线观看| 天天拍夜夜爽| 青娱乐亚洲视频在线| 无码日批| 影音先锋女人aV鲁色资源网站| 亚洲理论在线| 中文字幕播放| 国产淫乱视频| 无码在线视频免费观看| 牛牛精品视频一区二区| 国产A片免费视频| 日韩极品视频在线| 日本三级片中文字幕| 欧美日韩一区二区三区四区五区六区 | 亚洲av大片| 亚洲国产色婷婷| 偷拍一区二区三区| 95四川乱子伦视频国产| 国产精品乱码一区二区三区| 国产午夜精品一区二区三区嫩A | 西西444WWW无码视频软件 | 亚洲啪啪网站| 日本一级片在线播放| 色av影音先锋无吗一区| 日日视频| 三级无码高清| a天堂在线| 在线观看亚洲无码视频| 安徽妇搡BBBB搡BBBB按摩小说| 国产精品一区二区不卡| 蜜桃视频无码区在线观看| 成人黄色毛片| 免费乱伦视频| 亚洲性爱在线播放| 特级西西人体444www高清| 欧美三区四区| 午夜午夜福利理论片在线播放| 亚洲一区二区三区无码| 日本精品一区二区三区四区的功能 | 美国操逼片| 亚洲黄色片| 午夜福利日本| 一级a性色毛片| 不卡无码高清| 国产福利一区二区| 亚洲精品天堂无码AV片| 国产一级在线免费观看| 在线无.码| 国产乱人| 无码不卡视频| 专肏老妇人大逼| 你懂得视频| 美日韩免费视频| 一道本一区二区| 老熟女痒到不行-ThePorn| 欧美色图15p| 亚欧av无码| 精品一区二| 操屄在线视频| 日本边摸边吻奶边做爰| 五月丁香六月婷婷综合| 91精品视频网站| 国产丨熟女丨国产熟女视频| 乱伦中文| 国产成人精品毛片| 午夜福利无码电影| 91香蕉网| 波多野结衣国产| 99久久婷婷国产综合精品草原| 大香蕉av一区二区三区在线观看| 国产午夜福利视频在线观看| 尿在小sao货里面好不好| 97激情| 翔田千里被操120分钟| 国产精品久久久久久久牛牛| 中文无码在线视频| 欧美精品一区二区三区四区| 色五月婷婷丁香五月| 国产成人无码一区二区在线播放 | 久久穴| 大香蕉网址| 国产激情精品视频| 91人妻人人爽人人澡| 男人天堂视频网站| 日本高清不卡视频| 成人久久精品| 91AV电影| 不卡无码av| 国产精品无码免费视频| 亚洲视频免费完整版在线播放| 偷拍九九热| 国产精品国产三级囯产普通话2 | 国产三级日本三级国产三级| 日本操B视频| 亚洲成人A片| 亚洲色成人网站www永久四虎 | 69国产精品无码免费| 日韩无码三级| 特级西西人体444WWw高清大胆| 黄片视频在线免费播放| 四虎成人无码| 麻豆免费视频| 久久精品片| 超碰在线人人| 久久久国产精品黄毛片| 欧美成人日韩| 二区三区免费视频| 骚逼AV| 俩小伙3p老熟女露脸| 亚洲有码在线视频| 91精品国产99久久久久久天美| 男人的天堂在线视频| 一级a片在线免费观看| 波多野59部无码喷潮| 日本一本不卡| 婷婷五月天激情网| 国产一级AA片| 婷婷性爱五月天| 成人福利在线| 老司机精品视频在线观看| 久久H| 国产精品V| 伊人AV在线| 在线亚洲AV| 91丨国产丨精品丨丝袜| 黄色在线欣赏| 国产一级自拍| 97精品在线| 一级无码专区| 黄色一级片在线| 日韩中文字幕不卡| 成人免费毛片片v| 人妻在线免费视频| 一级在线| 成人性爱毛片| 91丨PORNY丨对白| 成人一级视频| 亚洲精品成人无码熟妇在线| 9l视频自拍蝌蚪9l成人| 91操操| av天堂资源在线| 大香蕉尹在线| 日本一区二区三区免费看| 免费观看在线无码视频| 大香蕉视频网| 国产一区二区三区四区五区六区七区 | 国产av网站大全| 亚洲无码视频播放| 中文字幕免费一区| 91国语又粗又大对白| 黄片免费视频| 久久国产精品99久久人人澡 | 免费黄色大片网站| 国产一区二区电影| 高清无码视频网站| 青青草原国产视频| 波多野结衣无码AV在线| 午夜亚洲AV永久无码精品麻豆| 大香蕉欧美在线| 欧美日韩中国操逼打炮| 国产成人精品777777| 天天操夜夜爽| 狠狠2021| 国产亚洲欧美在线| 免费的黄色视频网站| 亚洲加勒比在线| 自拍毛片| 欧美在线成人视频| 俺来也俺去啦欧美www| 91丨九色丨熟女新版| 懂色Av| 国产一级a一片成人AV| 日日夜夜干| 国产乱论视频| 中文字幕第4页| 无码做爱视频| 伊人成人在线视频| 大地av| 麻豆AV96熟妇人妻| 伊人大香蕉视频在线观看| 国产一级二级三级| 国产91无码精品秘入口| 五月婷婷av| 国产免费性爱| 在线观看黄色视频网站| 免费无码婬片AAAA片在线蜜芽| 黄色视频网站在线| 在线观看视频国产| 日韩欧美综合| 国产多人搡BBBB槡BBBB| 爱爱帝国综合社区| 刘玥无码| 福利黄色片:片| 青春草在线观看国产| 青春草在线免费观看| 呦小BBBB小小BBBB| 国产成人午夜福利视频| 97自拍视频| 日韩欧美91| 日韩人妻无码视频| 国产乱伦一区| 久久香蕉综合在线| 亚洲福利在线观看视频| 国产精品无码一区二区三| 无码人妻精品一区二区蜜桃91| 日韩欧美性爱网站| www.俺来也| 亚洲无码在线精品| 乱婬妺妺躁爽A片| 亚洲精品一区二区三区四区五区六区 | 免费无码一级A片大黄在线观看| 日本成人视频在线免费播放| 日韩在线视频中文字幕| 啪啪啪av| 午夜精品久久久久久久| 91高清无码视频| 亚洲天天干| 人妻黄色视频| 日产久久久久久| 天天做天天爱天天爽| 国产aaaaaaaaaa| 做爱激情视频网站| 91资源在线观看| A级毛片视频| 高清无码免费在线观看| 久草福利网| 91久久久久久久91| 69成人精品国产| 婷婷五月色综合| 无码乱伦AV| 91成人视频在线播放| 亚洲AV无码成人专区| 91亚色视频| 人人爽人人干| 99热这里只有精| 日日爱网| 91蜜臀| 豆花视频成人版www满18| 国产三级图片| 国产无套进入免费| 成人精品国产| 国产操骚逼| 91精品酒店视频| 无码AV在线播放| 欧美一级特黄AAAAAA片| 黑人精品XXX一区一二区| 一区二区三区无码视频| 人妻天天干| 蜜芽成人精品久久久视频| 午夜成人三级| 亚洲有码在线观看| 中文字幕人妻在线中文乱码怎么解决| 亚洲色逼图片| 日本少妇无码| 色网站在线| 国产美女被爽到高潮免费A片软件 国产无遮挡又黄又爽又色视频软件 | 国外操逼视频| 91在线观看视频| 日韩成人无码电影| 欧美天天性爱| 激情黄色毛片| 久久三级| 在线免费观看黄色片| 久操av在线| 天天干天天操天天拍| 亚洲日本三级片| 麻豆免费视频| 日韩成人无码专区| 亚洲在线观看中文字幕| 亚洲无码在线高清| 在线观看免费黄片| 婷婷五月在线观看| sm在线观看| 东京热日韩无码| 亚洲中文字幕在线观看免费| 狠狠躁日日躁夜夜躁A片无码视频| 国产一a毛一a毛A免费| 性爱黄色视频| 东京热视频网址| 日韩免费Av| 俺去俺来也在线www色官网| www.蜜桃视频| wwwsesese| 无码不卡中文字幕| 乱伦乱伦乱伦中文字幕| 午夜无码在线观看视频| 国产高潮视频| 黄色伊人网| 911精品人妻一区二区三区A片| 人操人操人操| 天天天做夜夜夜爽无码| 欧美成人一区二区三区片| 另类老妇性BBwBBw| 中文字幕在线日韩| 尤物免费视频| 天天色AV| 亚州视频在线| 日韩AV无码一区二区| 996热re视频精品视频这里| 在线观看高清无码中文字幕| 一级片免费观看| 91精品人妻一区二区三区蜜桃欧美| 久操视频免费| 成人AV十八亚洲二区| 午夜福利100理论片| 免费在线观看Av| 欧美足交视频| www日本黄色| 成人无码小电影| 丁香五月激情中文字幕| 亚洲AAA| 无码在线免费观看视频| 国模吧一区| 色婷婷AV一区二区三区软件| 91蜜桃网| 18禁激韩| 日韩欧美一级视频| 免费操逼电影| 日韩色逼| 丁香六月婷婷综合缴| 人妻爽爽| 伊人色色色| 白嫩无码| 久久国产精品伦子伦| 蜜臀AV一区二区三区免费看| 日韩综合网| 日韩AV一区二区三区| 国产午夜无码福利视频| 黄页网站在线免费观看| 一个色综合网| 无码啪啪啪| 黄色成人视频| www.色五月| 日逼综合网| 男女www| 精品AV| 嫩草视频| 成人黄色毛片| 亚洲人成色777777无码| 成人福利午夜A片公司| 久热在线精品视频| 日韩高清无码片| 亚洲成人综合网站| 人人操人人操人人操人人| 天天操电影| 伊人春色av| 精品国产黄色| 国产在线高潮| 国产又色又爽又黄又免费|