bitixel / paycorp
Paycorp API - PHP
v0.9
2017-07-06 20:59 UTC
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2024-09-22 03:14:11 UTC
README
Paycorp的PHP SDK和REST API的示例代码
请注意
这是一个官方PHP SDK的修改版本,为了支持PSR-4自动加载。请联系您银行的电子银行部门获取官方SDK
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一
php composer.phar require bitixel/paycorp "*"
或者在您的composer.json文件的require部分添加此行。
"bitixel/paycorp": "*"
示例
重定向
<?php use bitixel\paycorp\GatewayClient; use bitixel\paycorp\config\ClientConfig; use bitixel\paycorp\payment\PaymentInitRequest; use bitixel\paycorp\enums\TransactionType; use bitixel\paycorp\component\TransactionAmount; use bitixel\paycorp\component\Redirect; use bitixel\paycorp\exceptions\PaycorpException; $paycorp_credentials = [ 'serviceEndpoint' => 'https://xxxx.paycorp.com.au/rest/service/proxy', 'authToken' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'hmacSecret' => 'xXxxXxxxxxXXXxXx', 'validateOnly' => FALSE, 'ClientId' => '1234' ]; /** serviceEndpoints ** * sampath bank : https://sampath.paycorp.com.au/rest/service/proxy * commercial bank : https://test-combank.paycorp.com.au/rest/service/proxy */ $payment = [ 'amount' => 100.00, 'currency' => 'USD', //'clientRef' => '1234', //'comment' => 'test comment', //'extraData' => ["orderId" => 456, "sessionId" => 789] ]; $returnUrl = 'https:///payment/return'; $clientConfig = new ClientConfig(); $clientConfig->setServiceEndpoint($paycorp_credentials['serviceEndpoint']); $clientConfig->setAuthToken($paycorp_credentials['authToken']); $clientConfig->setHmacSecret($paycorp_credentials['hmacSecret']); $clientConfig->setValidateOnly($paycorp_credentials['validateOnly']); $client = new GatewayClient($clientConfig); $initRequest = new PaymentInitRequest(); $initRequest->setClientId($paycorp_credentials['ClientId']); $initRequest->setTransactionType(TransactionType::$PURCHASE); //$initRequest->setClientRef($payment['clientRef']); //$initRequest->setComment($payment['comment']); //$initRequest->setExtraData($payment['extraData']); $transactionAmount = new TransactionAmount($payment['amount'] * 100); $transactionAmount->setCurrency($payment['currency']); $initRequest->setTransactionAmount($transactionAmount); $redirect = new Redirect($returnUrl); $initRequest->setRedirect($redirect); try { $initResponse = $client->getPayment()->init($initRequest); header('Location: ' . $initResponse->getPaymentPageUrl()); //echo $initResponse->getReqid() . '<br>'; //echo $initResponse->getPaymentPageUrl() . '<br>'; //echo $initResponse->getExpireAt() . '<br>'; } catch (Exception $e) { echo 'Caught exception: ' . $e->getMessage() . '<br>'; echo 'Code: ' . $e->getShortCode(); }
返回
<?php use bitixel\paycorp\GatewayClient; use bitixel\paycorp\config\ClientConfig; use bitixel\paycorp\component\TransactionAmount; use bitixel\paycorp\exceptions\PaycorpException; use bitixel\paycorp\payment\PaymentCompleteRequest; $paycorp_credentials = [ 'serviceEndpoint' => 'https://xxxx.paycorp.com.au/rest/service/proxy', 'authToken' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 'hmacSecret' => 'xXxxXxxxxxXXXxXx', 'validateOnly' => FALSE, 'ClientId' => '1234' ]; $clientConfig = new ClientConfig(); $clientConfig->setServiceEndpoint($paycorp_credentials['serviceEndpoint']); $clientConfig->setAuthToken($paycorp_credentials['authToken']); $clientConfig->setHmacSecret($paycorp_credentials['hmacSecret']); $clientConfig->setValidateOnly($paycorp_credentials['validateOnly']); $client = new GatewayClient($clientConfig); $completeRequest = new PaymentCompleteRequest(); //$completeRequest->setClientId($paycorp_credentials['ClientId']); $completeRequest->setReqid($_GET['reqid']); try { $completeResponse = $client->getPayment()->complete($completeRequest); $creditCard = $completeResponse->getCreditCard(); $transactionAmount = $completeResponse->getTransactionAmount(); if($completeResponse->getResponseCode() == '00'){ echo $transactionAmount->getPaymentAmount() . '<br>'; echo $transactionAmount->getCurrency() . '<br>'; echo $completeResponse->getTxnReference() . '<br>'; }else{ echo 'ErrorResponseCode: ' . $completeResponse->getResponseCode(); } } catch (PaycorpException $e) { echo 'Caught exception: ' . $e->getMessage() . '<br>'; echo 'Code: ' . $e->getShortCode() . '<br>'; } catch (\Exception $e) { echo 'Caught exception: ' . $e->getMessage() . '<br>'; }