payengine / php_sdk
PHP库,用于Concardis PayEngine 3.0
1.1.1
2017-12-04 16:09 UTC
Requires
- curl/curl: 1.6.0
Requires (Dev)
- phpunit/phpunit: 5.7.19
- sebastian/version: 1.0.6
This package is not auto-updated.
Last update: 2024-09-29 04:31:27 UTC
README
先决条件
PHP
获取并安装适合您系统的PHP。请参阅https://php.ac.cn/manual/en/install.php
Composer
获取并安装适合您系统的Composer。请参阅https://getcomposer.org
获取PHP SDK
通过Packagist.org
composer require payengine/php_sdk
通过克隆
git@github.com:concardis/PHP_SDK.git
作为发布版ZIP文件
https://github.com/concardis/PHP_SDK/releases
安装
解压缩PHP SDK文件夹,切换到新创建的文件夹,并运行
composer install
将PHP SDK文件夹移动到您的PHP项目的vendor文件夹中。现在您可以使用SDK创建一个php文件。
初始化SDK
include_once "./vendor/payengine/autoload.php"; use \Concardis\Payengine\Lib\Payengine; use \Concardis\Payengine\Lib\Internal\Config\MerchantConfiguration; use \Concardis\Payengine\Lib\Models\Request\Customer as CustomerRequest; use \Concardis\Payengine\Lib\Models\Request\Customers\Persona as PersonaRequest; use \Concardis\Payengine\Lib\Models\Request\Customers\Address as AddressRequest; use \Concardis\Payengine\Lib\Models\Request\Orders\Payment\Payment; $config = new MerchantConfiguration(); //TODO: Enter your API-Key $config->setApiKey('YOUR_API_KEY'); // TODO: Enter your merchantId $config->setMerchantId('YOUR_MERCHANT_ID'); $config->setIsLiveMode(false); $lib = new Payengine($config);
基本用法
创建客户
$customerRequest = new CustomerRequest(); $customerRequest->setEmail('somebody@' . time() .'.org'); $customerResponse = $lib->customer()->post($customerRequest);
创建个人资料
$personaRequest = new PersonaRequest(); $personaRequest->setTitle("Dr."); $personaRequest->setGender( \Concardis\Payengine\Lib\Internal\Constants\Gender::MALE ); $personaRequest->setFirstName("Max"); $personaRequest->setLastName("Mustermann"); $personaRequest->setBirthday(time()); $personaRequest->setFax("0123456789"); $personaRequest->setMobile("0123456789"); $personaRequest->setPhone("0123456789");
创建地址
$addressRequest = new AddressRequest(); $addressRequest->setFirstName("Maxim"); $addressRequest->setLastName("Mustermann"); $addressRequest->setZip("12345"); $addressRequest->setStreet("Musterstrasse"); $addressRequest->setHouseNumber("1a"); $addressRequest->setCountry("DE"); $addressRequest->setCity("Musterstadt"); $addressRequest->setPhone("0123456789"); $addressRequest->setMobile("0123456789"); $addressRequest->setFax("0123456789"); $addressRequest->setState("nrw"); $addressRequest->setTitle("dr."); $addressResponse = $lib->customer( $customerResponse->getCustomerId())->addresses()->post($addressRequest);
创建预授权
$payment = new Payment(); //TODO Enter PaymentInstrumentId $payment->setPaymentInstrumentId('IDFromYourFrontend'); $item = new \Concardis\Payengine\Lib\Models\Request\Orders\Item(); $item->setQuantity(2); $item->setUnitPrice(5); $item->setUnitPriceWithTax(6); $item->setTotalPrice(10); $item->setTotalPriceWithTax(12); $item->setArticleNumber("test"); $item->setName("testName"); $item->setTax(19); $async = new \Concardis\Payengine\Lib\Models\Request\Orders\Async(); $async->setSuccessUrl("http://google.de?q=success"); $async->setCancelUrl("http://google.de?q=cancel"); $async->setFailureUrl("http://google.de?q=failure"); $authorizingTransaction = new \Concardis\Payengine\Lib\Models\Request\Orders\AuthorizingTransaction(); $authorizingTransaction->setCustomer($customerResponse->getCustomerId()); $authorizingTransaction->setPersona($personaResponse->getPersonaId()); $authorizingTransaction->setBillingAddress( $addressResponse->getAddressId() ); $authorizingTransaction->setShippingAddress( $addressResponse->getAddressId() ); $authorizingTransaction->setCurrency("EUR"); $authorizingTransaction->setPayment($payment); $authorizingTransaction->setBasket(array( $item )); $authorizingTransaction->setInitialAmount(12); $authorizingTransaction->setChannel('ECOM'); $authorizingTransaction->setSource("basicUsage script"); $authorizingTransaction->setTerms(time()); $authorizingTransaction->setPrivacy(time()); $authorizingTransaction->setAsync($async); $authorizingTransaction->setProduct( \Concardis\Payengine\Lib\Internal\Constants\Products::CREDITCARD ); $transactionResponse = $lib->orders()->preauth()->post( $authorizingTransaction );
捕获预授权
$referencingTransaction = new \Concardis\Payengine\Lib\Models\Request\Orders\ReferencingTransaction(); $referencingTransaction->setInitialAmount(12); $referencingTransaction->setCurrency("EUR"); $referencingTransaction->setDescription("Capture everything"); $referencingTransaction->setBasket(array( $item )); /* @var $preAuthTransaction \Concardis\Payengine\Lib\Models\Response\Orders\Transaction */ $preAuthTransaction = $transactionResponse->getTransactions()[0]; $preAuthId = $preAuthTransaction->getTransactionId(); $captureResponse = $lib->orders( $transactionResponse->getOrderId() )->transactions($preAuthId)->capture()->post($referencingTransaction);
取消预授权
$referencingTransaction = new \Concardis\Payengine\Lib\Models\Request\Orders\ReferencingTransaction(); $referencingTransaction->setInitialAmount(12); $referencingTransaction->setCurrency("EUR"); $referencingTransaction->setDescription("Capture everything"); $referencingTransaction->setBasket(array( $item )); /* @var $preAuthTransaction \Concardis\Payengine\Lib\Models\Response\Orders\Transaction */ $preAuthTransaction = $transactionResponse->getTransactions()[0]; $preAuthId = $preAuthTransaction->getTransactionId(); $cancelResponse = $lib->orders( $transactionResponse->getOrderId() )->transactions($preAuthId)->cancel()->post($referencingTransaction);
退款捕获或借记交易
$referencingTransaction = new \Concardis\Payengine\Lib\Models\Request\Orders\ReferencingTransaction(); $referencingTransaction->setInitialAmount(12); $referencingTransaction->setCurrency("EUR"); $referencingTransaction->setDescription("Refund everything"); $referencingTransaction->setBasket(array( $item )); $refundResponse = $lib->orders( $transactionResponse->getOrderId() )->transactions( $captureResponse->getTransactionId() )->refund()->post($referencingTransaction);
获取交易状态
$transactionGetResponse = $lib->orders( $transactionResponse->getOrderId() )->transactions($captureResponse->getTransactionId())->get();
获取订单
$orderGetResponse = $lib->orders( $transactionResponse->getOrderId() )->get();
测试
要运行测试(不包括集成测试),请使用phpunit的exclude组选项。
phpunit tests --exclude-group integrationtests
文档
有关更多信息,请参阅Payengine文档:https://docs.payengine.de