跳到主要内容

快速开始

服务端 SDK

快速开始

安装 J-Pay Server SDK、初始化 API Client,并开始调用支付、代付与代理 API。

Language
jpay-api/php-sdk

J-Pay API 快速开始

简介

J-Pay 支付网关 PHP Server SDK

安装

使用 Composer

composer require jpay-api/php-sdk
{
"require": {
"jpay-api/php-sdk": "~1.0"
}
}

初始化 API Client

说明: 客户端详细配置见 API Client

API Client 支持以下可配置参数:

参数类型Description
apiKeystringMerchant API key for automatic MD5 request signing on Payments API calls.
environmentEnvironmentThe API environment. <br> Default: Environment.SANDBOX
timeoutintTimeout for API calls in seconds.<br>Default: 30
enableRetriesboolWhether to enable retries and backoff feature.<br>Default: false
numberOfRetriesintThe number of retries to make.<br>Default: 0
retryIntervalfloatThe retry time interval between the endpoint calls.<br>Default: 1
backOffFactorfloatExponential backoff factor to increase interval between retries.<br>Default: 2
maximumRetryWaitTimeintThe maximum wait time in seconds for overall retrying requests.<br>Default: 0
retryOnTimeoutboolWhether to retry on request timeout.<br>Default: true
httpStatusCodesToRetryarrayHttp status codes to retry against.<br>Default: 408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524
httpMethodsToRetryarrayHttp methods to retry against.<br>Default: 'GET', 'PUT', 'GET', 'PUT'
loggingConfigurationLoggingConfigurationBuilderRepresents the logging configurations for API calls
proxyConfigurationProxyConfigurationBuilderRepresents the proxy configurations for API calls
verifyPeerboolWhether to verify SSL certificates.<br>Default: true
verifyHostboolWhether to verify SSL host names.<br>Default: true

可按如下方式初始化 API Client:

use JPayApiLib\Logging\LoggingConfigurationBuilder;
use JPayApiLib\Logging\RequestLoggingConfigurationBuilder;
use JPayApiLib\Logging\ResponseLoggingConfigurationBuilder;
use Psr\Log\LogLevel;
use JPayApiLib\Environment;
use JPayApiLib\JPayApiClientBuilder;

$client = JPayApiClientBuilder::init()
->apiKey('your-merchant-api-key')
->environment(Environment::SANDBOX)
->loggingConfiguration(
LoggingConfigurationBuilder::init()
->level(LogLevel::INFO)
->requestConfiguration(RequestLoggingConfigurationBuilder::init()->body(true))
->responseConfiguration(ResponseLoggingConfigurationBuilder::init()->headers(true))
)
->build();

环境

SDK 支持切换 API 环境,可选值如下:

字段

名称说明
SANDBOXSandbox (Default)
PRODUCTIONProduction

请求模型与 Builder

各 API 端点提供与 OpenAPI 规范一致的强类型请求模型与链式 Builder,参数类型与 API 定义一致(均为 string)。

use JPayApiLib\Models\Requests\Builders\CreatePayoutRequestBuilder;

$request = CreatePayoutRequestBuilder::init()
->orderType('BANK')
->memberid('10153')
->outTradeNo('PO20260101001')
->amount('100.00')
->currency('USD')
->notifyurl('https://example.com/payout/notify')
->remark('Salary payout')
->firstname('John')
->payeeCountry('US')
->payeeaccount('1234567890')
->bankcode('001')
->bankname('Test Bank')
->build();

$response = $client->getPayoutsApi()->createFromRequest($request);
/** @var \JPayApiLib\Models\ApiV1PaymentCreateOrderResponse $result */
$result = $response->getResult();

响应模型会自动反序列化(如 PayTradeQueryResponsePaymentResponse)。

自动请求签名

配置 apiKey 后,PaymentsApi 会在发起出站请求前自动生成 MD5 签名(pay_md5sign),通常无需手动设置 payMd5Sign,除非需要覆盖计算值。

签名规则见 J-Pay 签名算法:参与签名的非空字段按名称排序,拼接为 key=value&...,末尾追加 &key={apiKey} 后做 MD5 并转大写。

卡支付下单(POST /pay_index)参与签名的字段:pay_memberidpay_orderidpay_applydatepay_bankcodepay_notifyurlpay_callbackurlpay_amount

API 列表

SDK 基础设施

配置

  • ProxyConfigurationBuilder
  • LoggingConfigurationBuilder
  • RequestLoggingConfigurationBuilder
  • ResponseLoggingConfigurationBuilder

HTTP

  • HttpRequest

Utilities

  • FileWrapper
  • ApiResponse