承接 twitchalerts/xsolla-sdk-php 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

twitchalerts/xsolla-sdk-php

Composer 安装命令:

composer require twitchalerts/xsolla-sdk-php

包简介

Xsolla SDK for PHP. Xsolla is the authorized reseller and merchant providing e-commerce services for online games.

README 文档

README

Latest Stable Version Build Status Code Coverage Scrutinizer Code Quality Downloads Join the chat at https://gitter.im/xsolla/xsolla-sdk-php GitHub license

An official PHP SDK for interacting with Xsolla API

Payment UI screenshot

Features

  • Full customisation of Payment UI with the help of different methods of getting token.
  • Client for all API methods, making your integration easy and convenient. You can use it for setting up and updating virtual currency, items and subscription plans, for managing the users balance, for checking the finance information with the help of Report API and so on.
  • Convenient webhook server:
    • To start you need only one callback function.
    • All security checking already implemented: signature authentication and IP whitelisting.
    • Full customisation of notification processing logic, if standard server class doesn’t suit you.
  • SDK is built on Guzzle v3, and utilizes many of its features, including persistent connections, parallel requests, events and plugins (via Symfony2 EventDispatcher), service descriptions, over-the-wire logging, caching, flexible batching, and request retrying with truncated exponential back off.

Requirements

  • PHP ^7.3 or ^8.0
  • The following PHP extensions are required:
    • curl
    • json

Getting Started

Please register your Publisher Account and create the project. In order to use the PHP SDK Library you'll need:

  • MERCHANT_ID
  • API_KEY
  • PROJECT_ID
  • PROJECT_KEY

You can obtain these parameters using the information in your Company Profile and Project Settings.

Installation

Installing via Composer

The recommended way to install Xsolla SDK for PHP is through Composer.

$ cd /path/to/your/project
$ composer require xsolla/xsolla-sdk-php

After installing, you need to require Composer's autoloader:

require '/path/to/vendor/autoload.php';

Installing via Phar

You can download the packaged phar and include it in your scripts to get started:

require '/path/to/xsolla.phar';

Installing via Zip

You can download the zip file, unzip it into your project to a location of your choosing, and include the autoloader:

require '/path/to/xsolla-autoloader.php';

Quick Examples

Integrate Payment UI

To integrate Payment UI into your game you should obtain an access token. An access token is a string that identifies game, user and purchase parameters.

There are number of ways for getting token. The easiest one is to use the createCommonPaymentUIToken method, you will need to pass only ID of project in Xsolla system and ID of the user in your game:

<?php

use Xsolla\SDK\API\XsollaClient;

$client = XsollaClient::factory(array(
    'merchant_id' => MERCHANT_ID,
    'api_key' => API_KEY
));
$paymentUIToken = $client->createCommonPaymentUIToken(PROJECT_ID, USER_ID, $sandboxMode = true);

Render Payment UI script in your page:

<html>
<head lang="en">
    <meta charset="UTF-8">
</head>
<body>
    <button data-xpaystation-widget-open>Buy Credits</button>
    
    <?php \Xsolla\SDK\API\PaymentUI\PaymentUIScriptRenderer::send($paymentUIToken, $isSandbox = true); ?>
</body>
</html>

Receive webhooks

There is a build in server class to help you to handle the webhooks.

<?php

use Xsolla\SDK\Webhook\WebhookServer;
use Xsolla\SDK\Webhook\Message\Message;
use Xsolla\SDK\Exception\Webhook\XsollaWebhookException;

$callback = function (Message $message) {
    switch ($message->getNotificationType()) {
        case Message::USER_VALIDATION:
            /** @var Xsolla\SDK\Webhook\Message\UserValidationMessage $message */
            // TODO if user not found, you should throw Xsolla\SDK\Exception\Webhook\InvalidUserException
            break;
        case Message::PAYMENT:
            /** @var Xsolla\SDK\Webhook\Message\PaymentMessage $message */
            // TODO if the payment delivery fails for some reason, you should throw Xsolla\SDK\Exception\Webhook\XsollaWebhookException
            break;
        case Message::REFUND:
            /** @var Xsolla\SDK\Webhook\Message\RefundMessage $message */
            // TODO if you cannot handle the refund, you should throw Xsolla\SDK\Exception\Webhook\XsollaWebhookException
            break;
        default:
            throw new XsollaWebhookException('Notification type not implemented');
    }
};

$webhookServer = WebhookServer::create($callback, PROJECT_KEY);
$webhookServer->start();

Once you've finished the handling of notifications on your server, please set up the URL that will receive all webhook notifications on the Settings page for your project.

Troubleshooting

You can find solutions for the most frequently encountered errors in our documentation.

Contributing

Please take a look at the CONTRIBUTING.md to see how to get your changes merged in.

Additional resources

twitchalerts/xsolla-sdk-php 适用场景与选型建议

twitchalerts/xsolla-sdk-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 10 月 11 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「api」 「payment」 「sdk」 「xsolla」 「games」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 twitchalerts/xsolla-sdk-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 twitchalerts/xsolla-sdk-php 我们能提供哪些服务?
定制开发 / 二次开发

基于 twitchalerts/xsolla-sdk-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 15
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-10-11