bpol / rxp-remote-php
此包已被废弃,不再维护。未建议替换包。
使用 Remote 发送请求并解析 Realex Payments 响应的 SDK
v1.3
2017-03-23 13:49 UTC
Requires
- php: >=5.3.9
- apache/log4php: 2.3.0
- hafriedlander/phockito: 1.0.0
- symfony/property-access: ^3.0
- symfony/serializer: ^3.0
This package is not auto-updated.
Last update: 2019-01-17 12:39:16 UTC
README
您可以在 https://www.realexpayments.co.uk/developers 注册免费的 Realex Payments 沙盒账户
需求
- PHP >= 5.3.9
- Composer (https://getcomposer.org.cn/)
说明
-
将以下内容添加到您的 'composer.json' 文件中
{ "require": { "realexpayments/rxp-remote-php": "1.2.0" } }
-
在应用程序目录中运行 composer
composer update
或者(根据您的服务器配置)
php composer.phar update
-
在需要使用 SDK 的任何地方添加对自动加载类的引用
require_once ( 'vendor/autoload.php' );
-
使用 SDK
$card = ( new Card() ) ->addType( CardType::VISA ) ->addNumber( "4263971921001307" ) ....
用法
授权
require_once ( 'vendor/autoload.php' ); use com\realexpayments\remote\sdk\domain\Card; use com\realexpayments\remote\sdk\domain\CardType; use com\realexpayments\remote\sdk\domain\PresenceIndicator; use com\realexpayments\remote\sdk\domain\payment\AutoSettle; use com\realexpayments\remote\sdk\domain\payment\AutoSettleFlag; use com\realexpayments\remote\sdk\domain\payment\PaymentRequest; use com\realexpayments\remote\sdk\domain\payment\PaymentResponse; use com\realexpayments\remote\sdk\domain\payment\PaymentType; use com\realexpayments\remote\sdk\RealexClient; $card = ( new Card() ) ->addType( CardType::VISA ) ->addNumber( "4263971921001307" ) ->addExpiryDate( "1220" ) ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addCardHolderName( "James Mason" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::AUTH ) ->addCard( $card ) ->addAmount( 1001 ) ->addCurrency( "EUR" ) ->addAutoSettle( ( new AutoSettle() )->addFlag( AutoSettleFlag::TRUE ) ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request ); // do something with the response echo $response->toXML(); $resultCode = $response->getResult(); $message = $response->getMessage();
授权(带地址验证)
$card = ( new Card() ) ->addNumber( "4263971921001307" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ); ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addExpiryDate( "1220" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::AUTH ) ->addAmount( 1001 ) ->addCurrency( "EUR" ) ->addCard( $card ) ->addAutoSettle( ( new AutoSettle() )->addFlag( AutoSettleFlag::TRUE ) ) ->addAddressVerificationServiceDetails("382 The Road", "WB1 A42"); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
授权(移动端)
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::AUTH_MOBILE ) ->addAutoSettle( ( new AutoSettle() )->addFlag( AutoSettleFlag::TRUE ) ) ->addMobile("apple-pay") ->addToken("{auth mobile payment token}"); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
结算
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::SETTLE ) ->addOrderId("Order ID from original transaction") ->addAmount( 1001 ) ->addCurrency( "EUR" ) ->addPaymentsReference("pasref from original transaction"); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
取消
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::VOID ) ->addOrderId("Order ID from original transaction") ->addPaymentsReference("pasref from original transaction"); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
退款
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::REBATE ) ->addOrderId("Order ID from original transaction") ->addAmount( 1001 ) ->addCurrency( "EUR" ) ->addPaymentsReference("pasref from original transaction") ->addAuthCode("Auth code from original transaction") ->addRefundHash("SHA1 hash of rebate password"); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
OTB
$card = ( new Card() ) ->addNumber( "4263971921001307" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ) ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addExpiryDate( "1220" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::OTB ) ->addCard( $card ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
退款
$card = ( new Card() ) ->addNumber( "4263971921001307" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ) ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addExpiryDate( "1220" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::REFUND ) ->addAmount( 1001 ) ->addCurrency( "EUR" ) ->addCard( $card ) ->addRefundHash( "Hash of credit password shared with Realex" ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
挂起
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::HOLD ) ->addOrderId( "Order ID from original transaction" ) ->addReasonCode( ReasonCode::FRAUD) ->addPaymentsReference( "Pasref from original transaction" ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
释放
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::RELEASE ) ->addOrderId( "Order ID from original transaction" ) ->addReasonCode( ReasonCode::FRAUD) ->addPaymentsReference( "Pasref from original transaction" ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
收据入库
$paymentData = ( new PaymentData() ) ->addCvnNumber( "123" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::RECEIPT_IN ) ->addAmount( 100 ) ->addCurrency( "EUR" ) ->addPayerReference( "payer ref for customer" ) ->addPaymentMethod( "payment method ref for card" ) ->addPaymentData( $paymentData ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
付款出库
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::PAYMENT_OUT ) ->addAmount( 100 ) ->addCurrency( "EUR" ) ->addPayerReference( "payer ref for customer" ) ->addPaymentMethod( "payment method ref for card" ) ->addRefundHash("Hash of rebate password shared with Realex"); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
新付款人
$address = ( new PayerAddress() ) ->addLine1( "Flat 123" ) ->addLine2( "House 456" ) ->addLine3( "The Cul-De-Sac" ) ->addCity( "Halifax" ) ->addCounty( "West Yorkshire" ) ->addPostcode( "W6 9HR" ) ->addCountryCode( "GB" ) ->addCountryName( "United Kingdom" ); $payer = ( new Payer() ) ->addType( "Business" ) ->addRef( "0f357b45-9aa4-4453-a685-c69232e9024f" ) ->addTitle( "Mr" ) ->addFirstName( "James" ) ->addSurname( "Mason" ) ->addCompany( "Realex Payments" ) ->addAddress( $address ) ->addHomePhoneNumber( "+35317285355" ) ->addWorkPhoneNumber( "+35317433923" ) ->addFaxPhoneNumber( "+35317893248" ) ->addMobilePhoneNumber( "+353873748392" ) ->addEmail( "test@example.com" ) ->addComment( "Campaign Ref E7373G" ) ->addComment( "Website Sign-Up" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::PAYER_NEW ) ->addPayer( $payer ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
编辑付款人
$address = ( new PayerAddress() ) ->addLine1( "Flat 456" ) ->addLine2( "House 321" ) ->addLine3( "Basement Flat" ) ->addCity( "Rathmines" ) ->addCounty( "Dublin" ) ->addPostcode( "6" ) ->addCountryCode( "IE" ) ->addCountryName( "Ireland" ); $payer = ( new Payer() ) ->addType( "Subscriber" ) ->addRef( "0f357b45-9aa4-4453-a685-c69232e9024f" ) ->addTitle( "Mr" ) ->addFirstName( "Philip" ) ->addSurname( "Marlowe" ) ->addCompany( "Pinkerton" ) ->addAddress( $address ) ->addHomePhoneNumber( "+3538547854" ) ->addWorkPhoneNumber( "+3535611177" ) ->addFaxPhoneNumber( "+12459498488" ) ->addMobilePhoneNumber( "+2554457774" ) ->addEmail( "test123@example.com" ) ->addComment( "New Subscription" ) ->addComment( "12 Months" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType(PaymentType::PAYER_EDIT) ->addPayer( $payer ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
新卡
$card = ( new Card() ) ->addReference( "10c6a2c7-be7b-a13f-12638937a012" ) ->addPayerReference( "0f357b45-9aa4-4453-a685-c69232e9024f" ) ->addNumber( "4263971921001307" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ) ->addExpiryDate( "1220" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::CARD_NEW ) ->addCard( $card ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
编辑卡
$card = ( new Card() ) ->addReference( "10c6a2c7-be7b-a13f-12638937a012" ) ->addPayerReference( "0f357b45-9aa4-4453-a685-c69232e9024f" ) ->addNumber( "5425230000004415" ) ->addType( CardType::MASTERCARD ) ->addCardHolderName( "James Mason" ) ->addExpiryDate( "1220" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::CARD_UPDATE ) ->addCard( $card ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
删除卡
$card = ( new Card() ) ->addReference( "10c6a2c7-be7b-a13f-12638937a012" ) ->addPayerReference( "0f357b45-9aa4-4453-a685-c69232e9024f" ) $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::CARD_CANCEL ) ->addCard($card); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
验证已注册的存储卡
$paymentData = new PaymentData() ->addCvnNumber( "123" ); $request = ( new ThreeDSecureRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( ThreeDSecureType::VERIFY_STORED_CARD_ENROLLED ) ->addAmount( 100 ) ->addCurrency( "EUR" ) ->addReference( "10c6a2c7-be7b-a13f-12638937a012" ) ->addPayerReference( "0f357b45-9aa4-4453-a685-c69232e9024f" ) ->addPaymentData( $paymentData ) ->addAutoSettle( ( new AutoSettle() )->addFlag( AutoSettleFlag::TRUE ) ); $client = new RealexClient( "Shared Secret" ); $response = client.send(request);
DCC 汇率查找
$card = ( new Card() ) ->addNumber( "4006097467207025" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ) ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addExpiryDate( "1220" ); $dccInfo = ( new DccInfo() ) ->addDccProcessor( "fexco" ) ->addRateType( "S" ) ->addType( "1" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::DCC_RATE_LOOKUP ) ->addAmount(100) ->addCurrency( "EUR" ) ->addCard( $card ) ->addDccInfo( $dccInfo ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
带 DCC 信息的授权
$card = ( new Card() ) ->addNumber( "4006097467207025" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ) ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addExpiryDate( "1220" ); $dccInfo = ( new DccInfo() ) ->addDccProcessor( "fexco" ) ->addRateType( "S" ) ->addType( "1" ); ->addRate( 0.6868 ) ->addAmount( 13049 ) ->addCurrency( "AUD" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType(PaymentType::DCC_AUTH) ->addAmount( 19000 ) ->addCurrency( "EUR" ) ->addCard( $card ) ->addDccInfo( $dccInfo ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
收据入库 OTB
$request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::RECEIPT_IN_OTB ) ->addPayerReference( "03e28f0e-492e-80bd-20ec318e9334" ) ->addPaymentMethod( "3c4af936-483e-a393-f558bec2fb2a" ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
存储卡 DCC 汇率查找
$dccInfo = ( new DccInfo() ) ->addDccProcessor( "fexco" ) ->addRateType( "S" ) ->addType( "1" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType(PaymentType::STORED_CARD_DCC_RATE) ->addAmount( 1001 ) ->addCurrency( "EUR" ) ->addPayerReference( "03e28f0e-492e-80bd-20ec318e9334" ) ->addPaymentMethod( "3c4af936-483e-a393-f558bec2fb2a" ) ->addDccInfo( $dccInfo ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
欺诈过滤器请求
$card = ( new Card() ) ->addNumber( "4006097467207025" ) ->addType( CardType::VISA ) ->addCardHolderName( "James Mason" ) ->addCvn( "123" ) ->addCvnPresenceIndicator( PresenceIndicator::CVN_PRESENT ) ->addExpiryDate( "1220" ); $request = ( new PaymentRequest() ) ->addMerchantId( "Merchant ID" ) ->addAccount( "internet" ) ->addType( PaymentType::AUTH ) ->addCard( $card ) ->addAmount( 10001 ) ->addCurrency( "EUR" ) ->addAutoSettle( ( new AutoSettle() )->addFlag( AutoSettleFlag::TRUE ) ) ->addFraudFilter( ( new FraudFilter() )->addMode( FraudFilterMode::PASSIVE ) ); $client = new RealexClient( "Shared Secret" ); $response = $client->send( $request );
欺诈过滤器响应
// request is fraud filter $response = $client->send( $request ); $mode = $response->getFraudFilter()->getMode(); $result = $response->getFraudFilter()->getResult(); //array of FraudFilter Rule Actions $rules = $response->getFraudFilter()->getRules(); foreach($rules->getRules() as $rule) { echo $rule->getId(); echo $rule->getName(); echo $rule->getAction(); } //or echo $rules->get(0)->getId();
许可
查看LICENSE文件。