feat(stripe): 创建 session 接口增加了语言选项

This commit is contained in:
李东云
2023-09-26 12:00:39 +08:00
parent 999f3633a5
commit a6898bb1a0
4 changed files with 3110 additions and 331 deletions

View File

@@ -60,7 +60,7 @@
}, },
"packagist": { "packagist": {
"type": "composer", "type": "composer",
"url": "https://mirrors.cloud.tencent.com/composer/" "url": "https://mirrors.aliyun.com/composer/"
} }
}, },
"version": "1.0.0-alpha.8" "version": "1.0.0-alpha.8"

3422
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,9 +15,11 @@ use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\RequestOptions; use GuzzleHttp\RequestOptions;
use Hyperf\Codec\Json; use Hyperf\Codec\Json;
use Hyperf\HttpServer\Contract\RequestInterface; use Hyperf\HttpServer\Contract\RequestInterface;
use Lmc\HttpConstants\Header;
use Money\Money; use Money\Money;
use Singularity\HDK\Core\Http\RequestService; use Singularity\HDK\Core\Http\RequestService;
use Singularity\HDK\Core\Http\RequestServiceFactory; use Singularity\HDK\Core\Http\RequestServiceFactory;
use Singularity\HDK\Core\I18n\Enum\Languages;
use Singularity\HDK\Pay\Resource\Order; use Singularity\HDK\Pay\Resource\Order;
use Singularity\HDK\Pay\Resource\StripeConfiguration; use Singularity\HDK\Pay\Resource\StripeConfiguration;
@@ -70,14 +72,15 @@ final class StripeRpc
int $goodsId, int $goodsId,
string $goodsName, string $goodsName,
array $goodsDetail, array $goodsDetail,
?int $service = null ?Languages $locale = null,
?int $service = null,
): Order { ): Order {
$response = $this->requestService->requestPost( $response = $this->requestService->requestPost(
url: '/rpc/v1/stripe/order', url: '/rpc/v1/stripe/order',
data: [ data: [
'service' => $service ?? config('payment.sp_id'), 'service' => $service ?? config('payment.sp_id'),
'amount' => $money->getAmount(), 'amount' => $money->getAmount(),
'currency' => $money->getCurrency(), 'currency' => (string)$money->getCurrency(),
'uid' => $uid, 'uid' => $uid,
'goodsDetail' => array_replace( 'goodsDetail' => array_replace(
$goodsDetail, $goodsDetail,
@@ -87,6 +90,12 @@ final class StripeRpc
] ]
), ),
], ],
options: [
'headers' => [
Header::CONTENT_TYPE => 'application/json',
Header::ACCEPT_LANGUAGE => $locale?->value ?? config('translation.locale')
]
]
); );
$content = $response->getBody()->getContents(); $content = $response->getBody()->getContents();

View File

@@ -11,6 +11,7 @@
/** @var StripeRpc $service */ /** @var StripeRpc $service */
use Money\Money; use Money\Money;
use Singularity\HDK\Core\I18n\Enum\Languages;
use Singularity\HDK\Pay\Resource\Order; use Singularity\HDK\Pay\Resource\Order;
use Singularity\HDK\Pay\Resource\StripeConfiguration; use Singularity\HDK\Pay\Resource\StripeConfiguration;
use Singularity\HDK\Pay\Sdk\StripeRpc; use Singularity\HDK\Pay\Sdk\StripeRpc;
@@ -21,9 +22,10 @@ test('能够正常创建 Stripe 订单', function () {
$order = $service->createSession( $order = $service->createSession(
money: Money::USD(51), money: Money::USD(51),
uid: uniqid('NAT_'), uid: uniqid('NAT_'),
goodsId: 3, goodsId: 1,
goodsName: 'HDK-Pay Test', goodsName: 'HDK-Pay Test',
goodsDetail: [], goodsDetail: [],
locale: Languages::EN,
service: 1 service: 1
); );
expect($order)->toBeInstanceOf(Order::class); expect($order)->toBeInstanceOf(Order::class);