webservco/paypal

PHP组件/库。


README

PayPal REST API实现。

实现的功能:Orders v2

资源

存储

结构

表名和字段名都可以自定义。

order_payment

添加到现有表的字段
  • 必填:order_reference:实现特定,例如VARCHAR(45) NOT NULL
  • 必填:order_total:实现特定,例如DECIMAL(10,2) NOT NULL
  • 可选:order_currencyCHAR(3) NOT NULL
  • 必填:order_payment_status VARCHAR(45) DEFAULT NULL
  • 必填:payment_event_date_time DATETIME DEFAULT NULL
新表示例
CREATE TABLE order_payment (
    order_reference VARCHAR(45) NOT NULL,
    order_total DECIMAL(10,2) NOT NULL,
    order_currency CHAR(3) NOT NULL,
    order_payment_status VARCHAR(45) DEFAULT NULL,
    payment_event_date_time DATETIME DEFAULT NULL,
    PRIMARY KEY(order_reference)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

payment_access_token

CREATE TABLE payment_access_token (
    token VARCHAR(100) NOT NULL,
    expire_date_time DATETIME NOT NULL,
    added_date_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

    PRIMARY KEY(token)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

配置

使用环境变量(检查示例配置)(应用程序URL,默认货币,表和字段名称);

如果不使用订单级别的货币,请确保设置PAYMENT_DEFAULT_CURRENCY选项,并留空PAYMENT_FIELD_NAME_ORDER_CURRENCY

如果使用非常专业的设置并且配置不足以满足需求,您可以为您自己的项目特别实现\WebServCo\Contract\Storage\Order\OrderPaymentStorageInterface

用法

示例位于目录public/payment中。

将文件复制到您的本地项目并修改路径。

注意:如果需要自定义实现,请检查并修改位于src/example_implementation的代码。

测试示例实现

  • 创建config/.env.ini
  • 填写PayPal信息
  • 启动项目:ddev start
  • 创建表;
  • 创建一个测试订单
INSERT INTO `order_payment` (order_reference, order_total, order_currency) VALUES ('Test1', 123.45, 'EUR');
  • 打开支付页面:https://paypal.ddev.site/payment/pay.php?orderReference=Test1&languageCode=en

注意:languageCode是可选的,仅在实现项目内部使用。如果您在初始化支付时设置它,它将作为参数到达PAYMENT_RESULT_LOCATIONPAYMENT_CANCEL_LOCATION

待办事项

[ ] 找到一种方法来抑制Phalcon "UnusedVariable"错误。

不起作用(生成"UnusedPsalmSuppress"错误)

/**
 * @psalm-suppress UnusedVariable
 */
/** @psalm-suppress UnusedVariable */

参考:文档注释抑制