关于我的大脑 / paypal-merchant-sdk-php
PHP PayPal 商户 SDK
Requires
- php: >=5.3.0
- ext-curl: *
- exploitfate/sdk-core-php: 3.*
This package is not auto-updated.
Last update: 2024-09-21 15:25:09 UTC
README
存在一个替代分支 https://packagist.org.cn/packages/jpranskaitis/sdk-core-php
商户 SDK 可用于与 Express Checkout、批量付款、Web Payments Pro API 集成。
TLSv1.2 更新
支付卡行业(PCI)委员会已 强制 将早期版本的 TLS 从服务中退役。所有处理信用卡信息的组织都必须遵守此标准。作为这项义务的一部分,PayPal 正在更新其服务,要求所有 HTTPS 连接使用 TLS 1.2。在此期间,PayPal 还将要求所有连接使用 HTTP/1.1。有关更多信息,请 点击此处
已创建一个新的
mode
以测试您的服务器/机器是否处理 TLSv1.2 连接。请使用tls
模式而不是sandbox
进行验证。验证后,您可以返回到sandbox
模式。请参阅此 示例配置。
POODLE 更新
- 由于 POODLE 漏洞,PayPal 已禁用 SSLv3。
- 为了启用 TLS 加密,对 PPHttpConfig.php(在 SDK 核心库 中)进行了更改,以使用特定的 TLS 加密 cipher 列表。
/** * Some default options for curl * These are typically overridden by PPConnectionManager */ public static $DEFAULT_CURL_OPTS = array( CURLOPT_SSLVERSION => 1, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_TIMEOUT => 60, // maximum number of seconds to allow cURL functions to execute CURLOPT_USERAGENT => 'PayPal-PHP-SDK', CURLOPT_HTTPHEADER => array(), CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_SSL_VERIFYPEER => 1, CURLOPT_SSL_CIPHER_LIST => 'TLSv1', );
- 对 curl 选项进行了两个主要更改
这些更改已包含在最近的版本中,以及许多其他错误修复。
先决条件
PayPal 的 PHP 商户 SDK 需要
- PHP 5.3 及以上版本
- curl/openssl PHP 扩展
运行示例
要运行捆绑的示例,首先将 samples 文件夹复制到您的 web 服务器根目录。然后,您需要使用 composer(仅限 PHP V5.3+)将 SDK 作为依赖项安装。
使用 SDK
要使用 SDK,
- 创建一个包含以下内容的
composer.json
文件。
{
"name": "me/shopping-cart-app",
"require": {
"exploitfate/merchant-sdk-php":"3.8.*"
}
}
- 使用
composer
将 SDK 作为依赖项安装。要下载composer
,请遵循 Composer 文档中提供的 安装说明。 - 在您的应用程序中包含
PPBootStrap.php
。 - 选择您想要如何配置 SDK - 您可以
- 创建一个包含配置参数的 hashmap 并将其传递给服务对象 OR
- 创建一个
sdk_config.ini
文件,并将 PP_CONFIG_PATH 常量设置为指向此文件所在的目录。
- 根据项目需求实例化服务包装对象和请求对象。
- 在服务对象上调用适当的方法。
例如,
// Sets config file path(if config file is used) and registers the classloader
require("PPBootStrap.php");
// Array containing credentials and confiuration parameters. (not required if config file is used)
$config = array(
'mode' => 'sandbox',
'acct1.UserName' => 'jb-us-seller_api1.paypal.com',
'acct1.Password' => 'WX4WTU3S8MY44S7F'
.....
);
// Create request details
$itemAmount = new BasicAmountType($currencyId, $amount);
$setECReqType = new SetExpressCheckoutRequestType();
$setECReqType->SetExpressCheckoutRequestDetails = $setECReqDetails;
// Create request
$setECReq = new SetExpressCheckoutReq();
$setECReq->SetExpressCheckoutRequest = $setECReqType;
......
// Perform request
$paypalService = new PayPalAPIInterfaceServiceService($config);
$setECResponse = $paypalService->SetExpressCheckout($setECReq);
// Check results
if(strtoupper($setECResponse->Ack) == 'SUCCESS') {
// Success
}
认证
SDK 提供多种方式来认证您的 API 调用。
$paypalService = new PayPalAPIInterfaceServiceService($config);
// Use the default account (the first account) configured in sdk_config.ini
$response = $paypalService->SetExpressCheckout($setECReq);
// Use a specific account configured in sdk_config.ini
$response = $paypalService->SetExpressCheckout($setECReq, 'jb-us-seller_api1.paypal.com');
// Pass in a dynamically created API credential object
$cred = new PPCertificateCredential("username", "password", "path-to-pem-file");
$cred->setThirdPartyAuthorization(new PPTokenAuthorization("accessToken", "tokenSecret"));
$response = $paypalService->SetExpressCheckout($setECReq, $cred);
SDK 配置
SDK 允许您配置以下参数-
- 集成模式(sandbox / live)
- (多个)API 账户凭证。
- HTTP连接参数
- 日志记录
可以通过传递凭证和配置值的映射(如果传递了配置映射,则忽略配置文件)来设置动态配置值。
$config = array(
'mode' => 'sandbox',
'acct1.UserName' => 'jb-us-seller_api1.paypal.com',
'acct1.Password' => 'WX4WTU3S8MY44S7F'
.....
);
$service = new PayPalAPIInterfaceServiceService($config);
或者,您可以通过sdk_config.ini文件配置SDK。
define('PP_CONFIG_PATH', '/directory/that/contains/sdk_config.ini');
$service = new PayPalAPIInterfaceServiceService();
您可以在wiki页面上查看完整的配置参数列表。
即时支付通知(IPN)
请参阅'samples/IPN'目录下的IPN-README。
链接
- API参考 - https://developer.paypal.com/webapps/developer/docs/classic/api/#merchant
- 如果您需要使用SDK的帮助,需要的新功能或有问题要报告,请访问https://github.com/paypal/merchant-sdk-php/issues