bummzack / omnipay-postfinance
适用于 Omnipay 支付处理库的 Postfinance 网关
1.0.1
2022-07-12 11:21 UTC
Requires
- guzzlehttp/guzzle: ^6.3||^7.0
- league/omnipay: ^3
- omnipay/common: ^3.0
Requires (Dev)
- omnipay/tests: ^3.0
README
适用于 Omnipay PHP 支付处理库的 Postfinance 网关。
Omnipay 是一个不依赖于框架、多网关的 PHP 5.3+ 支付处理库。
此网关通过 Postfinance 实现离线支付。购买和授权均可用,捕获授权支付必须通过 Postfinance 后端执行(目前此网关未实现)。
请注意:如果您不使用 SHA-OUT 签名,则此网关无法成功完成您的请求。如果您在 Postfinance 后端未设置 SHA-OUT 签名,回调 URL 将不提供任何参数,这将使得确定支付请求的成功或失败变得不可能。
安装
可以使用 Composer 安装 Omnipay。请参阅安装说明。
运行以下命令以安装 omnipay 和 postfinance 网关
composer require bummzack/omnipay-postfinance ~1.0
Postfinance 后端配置
这是将您的 Postfinance 账户与 Omnipay 网关一起设置的最简单方法
- 在 全局安全参数 选项卡中,选择将 每个参数后面跟随密语。 作为哈希参数的方式。
- 哈希算法 可以自由选择,但必须在网关中作为
hashingMethod
参数提供,如果您使用的是默认以外的算法(sha1
) - 请确保在 数据和来源验证 选项卡中提供 SHA-IN 密语
- 在 交易反馈 下,请确保勾选 我想在重定向 URL 上接收交易反馈参数 并且 提供一个 SHA-OUT 密语。
基本用法
向 Postfinance 网关发出的支付请求至少需要提供以下参数
pspId
您的 postfinance 账户 IDtransactionId
唯一交易 IDamount
货币金额currency
货币language
表示客户语言偏好的区域代码,例如:en_US
强烈建议在您的请求中使用 SHA-IN 和 -OUT 签名。
$gateway = Omnipay::create('Postfinance'); $gateway->setPspId('myPspId'); $gateway->setShaIn('MyShaInSecret'); $gateway->setShaOut('MyShaOutSecret'); $gateway->setLanguage('de_DE'); // Send purchase request $response = $gateway->purchase( [ 'transactionId' => '17', 'amount' => '10.00', 'currency' => 'CHF' ] )->send(); // This is a redirect gateway, so redirect right away $response->redirect();