yurik3zzz/paytrail_e2
Composer 安装命令:
composer require yurik3zzz/paytrail_e2
包简介
Paytrail REST E2 client for PHP.
README 文档
README
Description
Implement the documentation: http://docs.paytrail.com/en/index-all.html
Install using composer
{
"require": {
"yurik3zzz/paytrail_e2": "^1.0"
}
}
E2 API Usage
<?php require(__DIR__ . '/../../../vendor/autoload.php'); use Paytrail\Object\UrlSet; use Paytrail\Object\Address; use Paytrail\Object\Contact; use Paytrail\Object\Product; use Paytrail\E2\Object\Payment; use Paytrail\E2\Http\Client; $urlSet = new UrlSet; $urlSet->configure(array( 'successUrl' => 'http://yurik3zzz/github/paytrail_e2/tests/Paytrail/E2/success.php', 'failureUrl' => 'http://yurik3zzz/github/paytrail_e2/tests/Paytrail/E2/canceled.php', 'notificationUrl' => 'http://yurik3zzz/github/paytrail_e2/tests/Paytrail/E2/notify.php', )); $address = new Address; $address->configure(array( 'streetAddress' => 'Test street 1', 'postalCode' => '12345', 'postalOffice' => 'Helsinki', 'countryCode' => 'FI', )); $contact = new Contact; $contact->configure(array( 'firstName' => 'Test', 'lastName' => 'Person', 'email' => 'test.person@demoshop.com', 'phoneNumber' => '040123456', 'companyName' => 'Demo Company Ltd', 'address' => $address, )); $orderNumber = "ORDER-123456"; $payment = new Payment; $payment->configure(array( 'orderNumber' => $orderNumber, 'urlSet' => $urlSet, 'contact' => $contact, 'locale' => Payment::LOCALE_ENUS, )); $product = new Product; $product->configure(array( 'title' => 'Test product', 'code' => '01234', 'amount' => 1.00, 'price' => 19.90, 'vat' => 24.00, 'discount' => 0.00, 'type' => Product::TYPE_NORMAL, )); $payment->addProduct($product); $payment->addPaymentMethods([Payment::PM_NORDEA, Payment::PM_MASTERCARD_NET]); $payment->setAmount(19.90) ->setDescription("Order No.$orderNumber"); $client = new Client('13466', '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ'); $form = $client->buildPaymentForm($payment, false); echo $form; die;
E2 Confirming or Canceled a payment
<?php require(__DIR__ . '/../../../vendor/autoload.php'); use Paytrail\E2\Http\Client; $client = new Client('13466', '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ'); if ($client->validateChecksum( $_GET["RETURN_AUTHCODE"], $_GET["ORDER_NUMBER"], $_GET["PAYMENT_ID"], $_GET["AMOUNT"], $_GET["TIMESTAMP"], $_GET["STATUS"] )) { // Payment receipt is valid echo "Valid "; print_r($_GET); } else { // Payment receipt was not valid, possible payment fraud attempt echo "Invalid "; print_r($_GET); }
REST API Usage
<?php require(__DIR__ . '/../../../vendor/autoload.php'); use Paytrail\Object\UrlSet; use Paytrail\Object\Address; use Paytrail\Object\Contact; use Paytrail\Object\Product; use Paytrail\REST\Object\Payment; use Paytrail\REST\Http\Client; $urlSet = new UrlSet; $urlSet->configure(array( 'successUrl' => 'http://yurik3zzz/github/paytrail_e2/tests/Paytrail/REST/success.php', 'failureUrl' => 'http://yurik3zzz/github/paytrail_e2/tests/Paytrail/REST/canceled.php', 'notificationUrl' => 'http://yurik3zzz/github/paytrail_e2/tests/Paytrail/REST/notify.php', )); $address = new Address; $address->configure(array( 'streetAddress' => 'Test street 1', 'postalCode' => '12345', 'postalOffice' => 'Helsinki', 'countryCode' => 'FI', )); $contact = new Contact; $contact->configure(array( 'firstName' => 'Test', 'lastName' => 'Person', 'email' => 'test.person@demoshop.com', 'phoneNumber' => '040123456', 'companyName' => 'Demo Company Ltd', 'address' => $address, )); $payment = new Payment; $payment->configure(array( 'orderNumber' => 1, 'urlSet' => $urlSet, 'contact' => $contact, 'locale' => Payment::LOCALE_ENUS, )); $product = new Product; $product->configure(array( 'title' => 'Test product', 'code' => '01234', 'amount' => 1.00, 'price' => 19.90, 'vat' => 23.00, 'discount' => 0.00, 'type' => Product::TYPE_NORMAL, )); $payment->addProduct($product); $client = new Client('13466', '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ'); $client->connect(); try { $result = $client->processPayment($payment); header('Location: ' . $result->getUrl()); } catch (Exception $e) { // Paytrail payment failed: Client error: `POST https://payment.paytrail.com/api-payment/create` resulted in a `400 Bad Request` response: {"errorCode":"invalid-order-number","errorMessage":"Missing or invalid order number (ORDER_NUMBER)."} die('Paytrail payment failed: ' . $e->getMessage()); }
REST API Confirming a payment
<?php require(__DIR__ . '/../../../vendor/autoload.php'); use Paytrail\REST\Http\Client; $client = new Client('13466', '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ'); $client->connect(); if ($client->validateChecksum($_GET["RETURN_AUTHCODE"], $_GET["ORDER_NUMBER"], $_GET["TIMESTAMP"], $_GET["PAID"], $_GET["METHOD"])) { // Payment receipt is valid // If needed, the used payment method can be found from the variable $_GET["METHOD"] // and order number for the payment from the variable $_GET["ORDER_NUMBER"] echo "Valid "; print_r($_GET); } else { // Payment receipt was not valid, possible payment fraud attempt echo "Invalid "; print_r($_GET); }
REST API Canceled a payment
<?php require(__DIR__ . '/../../../vendor/autoload.php'); use Paytrail\REST\Http\Client; $client = new Client('13466', '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ'); $client->connect(); if ($client->validateChecksum($_GET["RETURN_AUTHCODE"], $_GET["ORDER_NUMBER"], $_GET["TIMESTAMP"])) { // Payment receipt is valid // If needed, the used payment method can be found from the variable $_GET["METHOD"] // and order number for the payment from the variable $_GET["ORDER_NUMBER"] echo "Valid "; print_r($_GET); } else { // Payment receipt was not valid, possible payment fraud attempt echo "Invalid "; print_r($_GET); }
License
MIT. See LICENSE.
yurik3zzz/paytrail_e2 适用场景与选型建议
yurik3zzz/paytrail_e2 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 27 次下载、GitHub Stars 达 2, 最近一次更新时间为 2017 年 10 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 yurik3zzz/paytrail_e2 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 yurik3zzz/paytrail_e2 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 27
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-10-09