kiakaha / chargily-v2
v1.0.1
2024-02-05 11:44 UTC
Requires
- php: >=8.1
- ext-ctype: *
- ext-curl: *
- ext-iconv: *
- guzzlehttp/guzzle: ^7.8
- symfony/console: 6.4.*
- symfony/dotenv: 6.4.*
- symfony/flex: ^2
- symfony/framework-bundle: 6.4.*
- symfony/runtime: 6.4.*
- symfony/yaml: 6.4.*
This package is auto-updated.
Last update: 2024-09-05 19:04:38 UTC
README
Chargily v2 ePay Gateway 安装 Symfony 插件
安装
- 通过 Composer (推荐)
composer require kiakaha/chargily-v2
- 注册包,在文件 config/bundles.php 的末尾添加以下行
Chargily\V2Bundle\ChargilyV2Bundle::class => ['all' => true]
- 导入服务,在 config/services.yml 中添加以下行
imports: services: .... Chargily\V2Bundle\Service\HandleRequest\ChargilySendRequest: public: true
- 配置 API 密钥,在 config/services.yml 中添加以下行
parameters: ....... sandbox_url: 'Your test URL' live_url: 'Your Live URL' public_key: "Your Public KEY" secret_key: "Your Secret KEY" dev: Boolean true|flase
- 创建产品方法
#[Route('/chargily/create/product', name: 'create_new_product', methods: ['GET'])] public function createNewProduct(ChargilySendRequest $sendRequest) { $payload = json_encode(["name" => "Super Product"]); $response = $sendRequest->createNewProduct($payload); if ($response->getStatusCode() == 200) { $response = json_decode($response->getContent()); return new JsonResponse([ "id" => $response->id ?? null, "entity" => $response->entity ?? null, "livemode" => $response->livemode ?? null, "name" => $response->name ?? null, "description" => $response->description ?? null, "images" => $response->images ?? null, "metadata" => $response->metadata ?? null, "created_at" => $response->created_at ?? null, "updated_at" => $response->updated_at ?? null ]); } else { $response = json_decode($response->getContent()); return new JsonResponse($response); } }
- 创建价格方法
#[Route('/chargily/create/price', name: 'create_price', methods: ['GET'])] public function createPrice(ChargilySendRequest $sendRequest) { $payload = json_encode(["amount" => 5000, "currency" => "dzd", "product_id" => "01hnwn32spw57bz2b4m52rdjrh"]); return $sendRequest->createPrice($payload); }
- 创建结账方法
#[Route('/chargily/create/checkout', name: 'create_checkout', methods: ['GET'])] public function createCheckout(ChargilySendRequest $sendRequest) { $payload = json_encode(["items" => [[ "price" => "01hntrjg31kkxebqzxk37xzhp8", "quantity" => 1 ]], "success_url" => "https://your-cool-website.com/payments/success" ]); return $sendRequest->createCheckout($payload); }
- Webhook 方法
/** * @Route("/chargily/webhook/checkout",name="webhook_checkout") * @throws \Exception */ public function webhookCheckout(ChargilySendRequest $sendRequest, Request $request) { $response = $sendRequest->webhookCheckout($request); return $response; }
- 这是一个实现的全控制器
<?php namespace App\Controller; use Chargily\V2Bundle\Service\HandleRequest\ChargilySendRequest; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Attribute\Route; class ChargilyEpaySymfonyController extends AbstractController { #[Route('/chargily/create/product', name: 'create_new_product', methods: ['GET'])] public function createNewProduct(ChargilySendRequest $sendRequest) { $payload = json_encode(["name" => "Super Product"]); $response = $sendRequest->createNewProduct($payload); if ($response->getStatusCode() == 200) { $response = json_decode($response->getContent()); return new JsonResponse([ "id" => $response->id ?? null, "entity" => $response->entity ?? null, "livemode" => $response->livemode ?? null, "name" => $response->name ?? null, "description" => $response->description ?? null, "images" => $response->images ?? null, "metadata" => $response->metadata ?? null, "created_at" => $response->created_at ?? null, "updated_at" => $response->updated_at ?? null ]); } else { $response = json_decode($response->getContent()); return new JsonResponse($response); } } #[Route('/chargily/create/price', name: 'create_price', methods: ['GET'])] public function createPrice(ChargilySendRequest $sendRequest) { $payload = json_encode(["amount" => 5000, "currency" => "dzd", "product_id" => "01hnwn32spw57bz2b4m52rdjrh"]); return $sendRequest->createPrice($payload); } #[Route('/chargily/create/checkout', name: 'create_checkout', methods: ['GET'])] public function createCheckout(ChargilySendRequest $sendRequest) { $payload = json_encode(["items" => [[ "price" => "01hntrjg31kkxebqzxk37xzhp8", "quantity" => 1 ]], "success_url" => "https://your-cool-website.com/payments/success" ]); return $sendRequest->createCheckout($payload); } /** * @Route("/chargily/webhook/checkout",name="webhook_checkout") * @throws \Exception */ public function webhookCheckout(ChargilySendRequest $sendRequest, Request $request) { $response = $sendRequest->webhookCheckout($request); return $response; } }
贡献提示
- 在此仓库上创建一个分支。
- 访问我们的 API 文档
- 从 ePay by Chargily V2 测试模式 ePay by Chargily V2 生产模式 控制台免费获取您的 API 密钥/密钥。
- 开始开发。
- 完成?推送并合并。