paypal/invoice-sdk-php

此包已被废弃,不再维护。没有建议的替代包。

PHP PayPal 发票 SDK

v3.9.0 2015-09-22 18:16 UTC

README

POODLE 更新

  • 由于 POODLE 漏洞,PayPal 已禁用 SSLv3。
  • 为了启用 TLS 加密,对 PPHttpConfig.php 进行了更改,在 SDK 核心库中使用特定于 TLS 加密的密钥列表。
    /**
	 * 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 选项进行了两个主要更改
    • CURLOPT_SSLVERSION 设置为 1。更多信息请参阅 此处
    • CURLOPT_SSL_CIPHER_LIST 设置为 TLSv1。更多信息请参阅 此处

这些更改都包含在最近的版本中,还包括许多其他错误修复。我们强烈建议您更新版本,可以通过使用 composer 或运行下面的命令来实现

curl -k -L https://raw.githubusercontent.com/paypal/invoice-sdk-php/stable-php5.3/samples/install.php | php
        OR
wget  https://raw.githubusercontent.com/paypal/invoice-sdk-php/stable-php5.3/samples/install.php
php install.php

支持

请联系 PayPal 技术支持,解决任何实时或账户问题。

先决条件

PayPal 的 PHP 发票 SDK 需要

  • PHP 5.3 及以上版本
  • curl/openssl PHP 扩展

运行示例

要运行捆绑的示例,首先将 samples 文件夹复制到您的 Web 服务器根目录。然后,您需要使用 composer(仅限 PHP V5.3+)将 SDK 作为依赖项安装。

从 samples 文件夹运行 composer update

使用 SDK

要使用 SDK,

  • 创建一个包含以下内容的 composer.json 文件。
{
    "name": "me/shopping-cart-app",
    "require": {
        "paypal/invoice-sdk-php":"3.*"
    }
}
  • 使用 composer 或 install.php 脚本将 SDK 作为依赖项安装。
  • 根据您是否使用了 composer 或自定义安装程序,在您的应用程序中要求 vendor/autoload.phpPPBootStrap.php
  • 选择您想要配置 SDK 的方式 - 您可以
    • 创建一个包含配置参数的哈希表并将其传递给服务对象 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'
       .....
    );

  	$invoice = new InvoiceType($merchantEmail, $payerEmail, $itemList, $currencyCode, $paymentTerms);
	$requestEnvelope = new RequestEnvelope("en_US");
	$createInvoiceRequest = new CreateInvoiceRequest($requestEnvelope, $invoice);
	......

	$invoiceService = new InvoiceService($config);
	$createInvoiceResponse = $invoiceService->CreateInvoice($createInvoiceRequest);
		
	if($strtoupper($createInvoiceResponse->responseEnvelope->ack == 'SUCCESS') {
		// Success
	}

身份验证

SDK 提供了多种方式来对您的 API 调用进行身份验证。

	$invoiceService = new InvoiceService($config);
	
	// Use the default account (the first account) configured in sdk_config.ini
	$createInvoiceResponse = $invoiceService->CreateInvoice($createInvoiceRequest);	

	// Use a specific account configured in sdk_config.ini
	$createInvoiceResponse = $invoiceService->CreateInvoice($createInvoiceRequest, '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"));
	$createInvoiceResponse = $invoiceService->CreateInvoice($createInvoiceRequest, $cred);	

SDK 配置

SDK 允许您配置以下参数

  • 集成模式(沙盒/实时)
  • (多个)API 账户凭据。
  • HTTP 连接参数
  • 日志记录

动态配置值可以通过传递凭证和配置值的映射来设置(如果传递了配置映射,则忽略配置文件)

    $config = array(
       'mode' => 'sandbox',
       'acct1.UserName' => 'jb-us-seller_api1.paypal.com',
       'acct1.Password' => 'WX4WTU3S8MY44S7F'
       .....
    );
    $service  = new InvoiceService($config);

或者,您可以通过sdk_config.ini文件来配置SDK。

    define('PP_CONFIG_PATH', '/directory/that/contains/sdk_config.ini');
    $service  = new InvoiceService();

您可以在wiki页面中查看完整的配置参数列表。

链接