decidir/php-sdk

此包已被废弃,不再维护。未建议替代包。
此包最新版本(V1.3.2)没有可用的许可证信息。

Decidir SDK

安装: 103

依赖: 0

建议者: 0

安全: 0

星标: 5

关注者: 12

分支: 3

开放问题: 0

语言:CSS

V1.3.2 2017-03-01 12:41 UTC

This package is not auto-updated.

Last update: 2017-03-30 10:12:43 UTC


README

DECIDIR支付网关连接模块

安装

应从Download ZIP按钮下载SDK的最新版本,分支master。下载并解压后,应将位于/vendor目录中的autoload.php文件包含为项目中的库。

也可以通过Composer进行安装。
composer require decidir/php-sdk
应将vendor/autoload.php文件包含到项目中。

注意:取消注释php.ini中的extension=php_soap.dll和extension=php_openssl.dll,因为连接到网关时使用了PHP的SoapClient类。

返回首页

集成手册

集成手册[Manual de Integración Decidir](https://www.gitbook.com/book/decidir/documentacion/details)可在Gitbook上找到,可供在线查询或下载,其中详细说明了集成过程。其中解释了可用的服务和操作,包括请求和响应的示例,这里仅示例如何使用此SDK调用不同服务。

返回首页

概述

实例化类Decidir\Connector,它接收Decidir为商家提供的HTTP头部和执行操作的端点作为参数。

	$http_header = array('Authorization'=>'PRISMA RV82RVHO5T0O5CZUUTX2FLHU');
	$endpoint = Decidir\Connector::DECIDIR_ENDPOINT_TEST; // Opciones disponibles: DECIDIR_ENDPOINT_TEST, DECIDIR_ENDPOINT_PROD

	$connector = new Decidir\Connector($http_header, $endpoint);

注意: SDK包含2个示例,一个是简单的控制台执行示例,另一个是完整的示例,需要从浏览器访问,允许配置不同的选项。由于功能扩展,如果您使用的是1.0.2之前的版本,则必须删除ordenes.tsv文件以正确运行。

返回首页

SendAuthorizeRequest

SendAuthorizeRequest操作是Authorize服务的一部分,用于发送初始授权请求以开始交易的支付周期,应按以下方式调用:创建一个Decidir\Authorize\SendAuthorizeRequest\Data类的实例,包含请求的参数

	$sar_data = new Decidir\Authorize\SendAuthorizeRequest\Data( array(
																"security" => 'RV82RVHO5T0O5CZUUTX2FLHU', // Mandatorio. Código provisto por Decidir
																"encoding_method" => 'XML', // Opcional
																"merchant" => 22067736, // Mandatorio. Nro. de Comercio provisto por Decidir
																"nro_operacion" => 123456, // Mandatorio. Nro. de operación único y propio del comercio
																"monto" => 50.00, // Mandatorio. Monto de la operación
																"email_cliente" => 'ejemplo@misitio.com' // Mandatorio. E-mail del cliente
															));

然后,通过传递前面创建的对象调用服务

	$sar_rta = $connector->Authorize()->sendAuthorizeRequest($sar_data);

它将返回一个 Decidir\Authorize\SendAuthorizeRequest\Response 类的实例。

	$sar_rta->getStatusMessage(); // Mensaje del estado del requerimiento
	$sar_rta->getStatusCode(); // Código de estado
	$sar_rta->getRequestKey(); // Private Request Key
	$sar_rta->getPublicRequestKey(); // Public Request Key

返回首页

支付方式

在执行 SendAuthorizeRequest 操作时,必须根据使用的不同支付方式发送额外数据。为此,提供了针对每种支付方式的具体类,这些类必须添加到数据对象中。

返回首页

信用卡

要使用信用卡作为支付方式,必须创建一个 Decidir\Data\Mediopago\TarjetaCredito 类的实例,并使用以下参数:

	$tarjeta_credito = new Decidir\Data\Mediopago\TarjetaCredito( array(
																"medio_pago" =>	1, // Mandatorio. Código del tipo de tarjeta a utilizar. [Tabla Medios de Pago] (#tablas-medios-de-pago)
																"cuotas" => 6, // Mandatorio. Nro. de cuotas en los que se hará la operacion
																"bin" => 450799, // Opcional. Código BIN que identifica al emisor de la tarjeta de crédito. Permite al comercio operar con promociones bancarias.
                                "tokenizar" => true //Opcional. Indica sí se desea recibir un token la tarjeta para futuras compras
															));

然后必须在数据对象中包含支付方式的信息。

	$sar_data->setMedioPago($tarjeta_credito);

返回首页

Rapipago

要使用 Rapipago 作为支付方式,必须创建一个 Decidir\Data\Mediopago\Rapipago 类的实例,并使用以下参数:

	$rapipago = new Decidir\Data\Mediopago\Rapipago( array(
														"medio_pago" =>	26 // Mandatorio. Código del tipo de tarjeta a utilizar. [Tabla Medios de Pago] (#tablas-medios-de-pago)
														"cantdiasfechavenc" => 10 // Mandatorio. Son los días que existen entre el 1º y 2º vencimiento de la factura. Poner “00” si la factura no tiene 2º vencimiento.
														"cantdiaspago" => 12 // Mandatorio. Son los días después del 1º vencimiento y hasta el que el cliente puede pagar la factura por Rapipago.
														"recargo" => 22.00 // Mandatorio. Recargo por vencimiento del plazo. Es un monto (no un porcentaje).
														"fechavto" => 1601010 // Mandatorio. Fecha de vencimiento para el pago del cupón. Formato AAMMDD
														"cliente" => 12345678 // Mandatorio. Código de cliente provisto por Rapipago al momento de habilitar el comercio.
													));

然后必须在数据对象中包含支付方式的信息。

	$sar_data->setMedioPago($rapipago);

返回首页

易支付

要使用易支付作为支付方式,必须创建一个 Decidir\Data\Mediopago\PagoFacil 类的实例,并使用以下参数:

	$pagofacil = new Decidir\Data\Mediopago\PagoFacil( array(
														"recargo" => 2500 // Mandatorio. Se debe enviar el monto toal para el segundo vencimiento.
														"fechavto" => 1601010 // Mandatorio. Fecha de vencimiento para el pago del cupón. Formato AAMMDD
														"fechavto2" => 1601010 // Mandatorio. Fecha del segundo vencimiento para el pago del cupón. Formato AAMMDD
													));

然后必须在数据对象中包含支付方式的信息。

	$sar_data->setMedioPago($pagofacil);

返回首页

我的账户支付

要使用我的账户支付作为支付方式,必须创建一个 Decidir\Data\Mediopago\PagoMisCuentas 类的实例,并使用以下参数:

	$pagomiscuentas = new Decidir\Data\Mediopago\PagoMisCuentas( array(
														"fechavto" => 1601010 // Mandatorio. Fecha y hora de vencimiento de la factura. En formato DDMMYY HHMM. Puede omitirse las “horas” y “minutos”, informando solo la fecha con formato DDMMYY.
													));

然后必须在数据对象中包含支付方式的信息。

	$sar_data->setMedioPago($pagomiscuentas);

返回首页

与 Cybersource 集成

要使用 Cybersource 欺诈检测服务,在 SendAuthorizeRequest 操作中,必须发送有关要执行的购买操作的相关额外数据。已定义了五个业务垂直,它们需要特定的参数,以及所有垂直都通用的参数。

返回首页

通用参数

所有垂直的通用参数必须与每个垂直的具体数据一起发送。以下将描述应添加到每个垂直数据中的通用参数,在实例化相应的类时。

	$datos_comunes = array(
		'device_fingerprint' => 'dj94utjg93', // Device Fingerprint Id. MANDATORIO.
		'csbtcity'=>'Villa General Belgrano', //Ciudad de facturación, MANDATORIO.
		'csbtcountry'=>'AR', //País de facturación. MANDATORIO. Código ISO. (http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf)
		'csbtcustomerid'=>'453458', //Identificador del usuario al que se le emite la factura. MANDATORIO. No puede contener un correo electrónico.
		'csbtipaddress'=>'192.0.0.4', //IP de la PC del comprador. MANDATORIO.
		'csbtemail'=>'decidir@hotmail.com', //Mail del usuario al que se le emite la factura. MANDATORIO.
		'csbtfirstname'=>'Juan' ,//Nombre del usuario al que se le emite la factura. MANDATORIO.
		'csbtlastname'=>'Perez', //Apellido del usuario al que se le emite la factura. MANDATORIO.
		'csbtphonenumber'=>'541160913988', //Teléfono del usuario al que se le emite la factura. No utilizar guiones, puntos o espacios. Incluir código de país. MANDATORIO.
		'csbtpostalcode'=>' C1010AAP', //Código Postal de la dirección de facturación. MANDATORIO.
		'csbtstate'=>'B', //Provincia de la dirección de facturación. MANDATORIO. Ver tabla anexa de provincias.
		'csbtstreet1'=>'Cerrito 740', //Domicilio de facturación (calle y nro). MANDATORIO.
		'csbtstreet2'=>'Piso 8', //Complemento del domicilio. (piso, departamento). NO MANDATORIO.
		'csptcurrency'=>'ARS', //Moneda. MANDATORIO.
		'csptgrandtotalamount'=>'125.38', //Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO. (Ejemplos:$125,38-> 125.38 $12-> 12 o 12.00)
		'csmdd6'=>'Mobile', // Canal de venta. NO MANDATORIO. (Valores posibles: Web, Mobile, Telefonica)
		'csmdd7'=>'', // Fecha registro comprador(num Dias). NO MANDATORIO.
		'csmdd8'=>'Y', //Usuario Guest? (Y/N). En caso de ser Y, el campo CSMDD9 no deberá enviarse. NO MANDATORIO.
		'csmdd9'=>'', //Customer password Hash: criptograma asociado al password del comprador final. NO MANDATORIO.
		'csmdd10'=>'', //Histórica de compras del comprador (Num transacciones). NO MANDATORIO.
		'csmdd11'=>'', //Customer Cell Phone. NO MANDATORIO.
	);

返回首页

零售

以下参数必须特别为零售垂直发送。此外,还必须发送涉及交易的每个产品的具体数据。

	$datos_retail = array(
		'csstcity'=>'rosario', //Ciudad de enví­o de la orden. MANDATORIO.
		'csstcountry'=>'', //País de envío de la orden. MANDATORIO.
		'csstemail'=>'jose@gmail.com', //Mail del destinatario, MANDATORIO.
		'csstfirstname'=>'Jose', //Nombre del destinatario. MANDATORIO.
		'csstlastname'=>'Perez', //Apellido del destinatario. MANDATORIO.
		'csstphonenumber'=>'541155893737', //Número de teléfono del destinatario. MANDATORIO.
		'csstpostalcode'=>'1414', //Código postal del domicilio de envío. MANDATORIO.
		'csststate'=>'D', //Provincia de envío. MANDATORIO. Son de 1 caracter
		'csststreet1'=>'San Martín 123', //Domicilio de envío. MANDATORIO.
		'csststreet2'=>'San Luis', //Localidad de envío. NO MANDATORIO.
		'csmdd12'=>'',//Shipping DeadLine (Num Dias). NO MADATORIO.
		'csmdd13'=>'',//Método de Despacho. NO MANDATORIO.
		'csmdd14'=>'',//Customer requires Tax Bill ? (Y/N). NO MANDATORIO.
		'csmdd15'=>'',//Customer Loyality Number. NO MANDATORIO.
		'csmdd16'=>'',//Promotional / Coupon Code. NO MANDATORIO.
	);

	//Datos de productos, un array con los diferentes productos involucrados.
	$productos = array(
		array(	// Producto 1
			'csitproductcode'=>'electronic_good', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'LEVJNSL36GN', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'1254.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'1254.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO		
		),
		array(	// Producto 2
			'csitproductcode'=>'default', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'PENDRIVE 2GB KINGSTON', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'PENDRIVE 2GB', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'KSPDRV2g', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'248.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'248.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO			
		),
		......... // Otros productos
	);

要将这些数据包含在初始要求中,必须以以下方式实例化 Decidir\Data\Cybersource\Retail 类。


	//Se combinan los datos de retail con los comunes
	$datos_cs = array_merge($datos_comunes, $datos_retail);

	$cybersource = new Decidir\Data\Cybersource\Retail(
										$datos_cs,	// Datos de la operación
										$productos, // Datos de los productos
	);

	//Se agregan los datos el requerimiento inicial
	$sar_data->setCybersourceData($cybersource);

返回首页

旅行

以下参数必须特别为旅行垂直发送。此外,还必须发送涉及交易的每个乘客的具体数据。

	$datos_travel = array(
		'csdmcompleteroute'=>'JFK-SFO:SFO-LAX', //Ruta completa del viaje, ORIG1-DEST1[:ORIG2-DEST2...:ORIGn-DESTn]. MANDATORIO.
		'csdmjourneytypey'=>'round trip', //Tipo de viaje. valores posibles: round trip o one way. MANDATORIO.
		'csdmdeparturedatetime'=>'2011-03-20 11:30pm GMT', /* Fecha y hora del primer tramo del viaje. Utilizar GMT.
									Formato: yyyy-MM-dd hh:mma z donde:
									hh = hora en formato 12-horas
									a = am o pm
									z = huso horario del vuelo de salida. Por ejemplo: Si la compañía tiene su sede en la ciudad de A, pero el vuelo sale de la ciudad B, z es el horario de la ciudad B al momento de la salida
									MANDATORIO */
		'csadnumberofpassengers'=>'4', //Cantidad total de pasajeros. MANDATORIO.
		'csmdd17'=>'AWHWNV', //Código de Reserva (PNR). MANDATORIO.
		'csmdd18'=>'N', //3rd Party Booking? (Y/N). MANDATORIO.
		'csmdd19'=>'', //Departure City. NO MANDATORIO.
		'csmdd20'=>'', //Final Destination City. NO MANDATORIO.
		'csmdd21'=>'', //International Flight. NO MANDATORIO.
		'csmdd22'=>'', //Frequent Flyer Number. NO MANDATORIO.
		'csmdd23'=>'', //Class of Service. NO MANDATORIO.
		'csmdd24'=>'', //Day of week of Flight. NO MANDATORIO.
		'csmdd25'=>'', //Week of year of Flight. NO MANDATORIO.
		'csmdd26'=>'', //Airline Code. NO MANDATORIO.
		'csmdd27'=>'', //Code Share. NO MANDATORIO.
	);

	//Datos de pasajeros, un array con los diferentes pasajeros involucrados.
	$pasajeros = array(
		array(	// Pasajero 1
			'csitpassengeremail'=>'jperez@hotmail.com', //Email del pasajero. MANDATORIO.
			'csitpassengerfirstname'=>'Juan', //Nombre del pasajero. MANDATORIO.
			'csitpassengerid'=>'11123123', //Número de pasaporte. NO MANDATORIO.
			'csitpassengerlastname'=>'Perez', //Apellido del pasajero. MANDATORIO.
			'csitpassengerphone'=>'541145454545', //Número de teléfono del pasajero. MANDATORIO.
			'csitpassengerstatus'=>'gold', //Clasificación del pasajero dentro de la empresa. MANDATORIO.
			'csitpassengertype'=>'INF', //Tipo de pasajero asociado al precio del pasaje. MANDATORIO.(ADT: Adult,CNN: Child,INF: Infant,YTH: Youth,STU: Student,SCR: Senior Citizen,MIL: Military)
		),
		array(	// Pasajero 2
			'csitpassengeremail'=>'jperez@hotmail.com', //Email del pasajero. MANDATORIO.
			'csitpassengerfirstname'=>'Juan', //Nombre del pasajero. MANDATORIO.
			'csitpassengerid'=>'12123123', //Número de pasaporte. NO MANDATORIO.
			'csitpassengerlastname'=>'Perez', //Apellido del pasajero. MANDATORIO.
			'csitpassengerphone'=>'541145454546', //Número de teléfono del pasajero. MANDATORIO.
			'csitpassengerstatus'=>'gold', //Clasificación del pasajero dentro de la empresa. MANDATORIO.
			'csitpassengertype'=>'INF', //Tipo de pasajero asociado al precio del pasaje. MANDATORIO.(ADT: Adult,CNN: Child,INF: Infant,YTH: Youth,STU: Student,SCR: Senior Citizen,MIL: Military)
		),
		......... // Otros pasajeros
	);

要将这些数据包含在初始要求中,必须以以下方式实例化 Decidir\Data\Cybersource\Travel 类。


	//Se combinan los datos de travel con los comunes
	$datos_cs = array_merge($datos_comunes, $datos_travel);

	$cybersource = new Decidir\Data\Cybersource\Travel(
										$datos_cs,	// Datos de la operación
										$pasajeros, // Datos de los pasajeros
	);

	//Se agregan los datos el requerimiento inicial
	$sar_data->setCybersourceData($cybersource);

返回首页

票务

以下参数必须特别为票务垂直发送。此外,还必须发送涉及交易的每个产品的具体数据。

	$datos_ticketing = array(
		'csmdd33'=> 15, //Número de días en los que se desarrollara el evento. MANDATORIO
		'csmdd34'=>'Email', //Tipo de envío. MANDATORIO. Valores posibles: Pick up, Email, Smartphone, Other
	);

	//Datos de productos, un array con los diferentes productos involucrados.
	$productos = array(
		array(	// Producto 1
			'csitproductcode'=>'electronic_good', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'LEVJNSL36GN', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'1254.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'1254.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO		
		),
		array(	// Producto 2
			'csitproductcode'=>'default', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'PENDRIVE 2GB KINGSTON', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'PENDRIVE 2GB', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'KSPDRV2g', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'248.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'248.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO			
		),
		......... // Otros productos
	);

要将这些数据包含在初始要求中,必须以以下方式实例化 Decidir\Data\Cybersource\Ticketing 类。


	//Se combinan los datos de ticketing con los comunes
	$datos_cs = array_merge($datos_comunes, $datos_ticketing);

	$cybersource = new Decidir\Data\Cybersource\Ticketing(
										$datos_cs,	// Datos de la operación
										$productos, // Datos de los productos
	);

	//Se agregan los datos el requerimiento inicial
	$sar_data->setCybersourceData($cybersource);

返回首页

服务

以下参数必须特别为服务垂直发送。此外,还必须发送涉及交易的每个产品的具体数据。

	$datos_services = array(
		'csmdd28'=>'Gas', //Tipo de Servicio. MANDATORIO. Valores posibles: Luz, Gas, Telefono, Agua, TV, Cable, Internet, Impuestos.
		'csmdd29'=>'', //Referencia de pago del servicio 1. NO MANDATORIO.
		'csmdd30'=>'', //Referencia de pago del servicio 2. NO MANDATORIO.
		'csmdd31'=>'', //Referencia de pago del servicio 3. NO MANDATORIO.
	);

	//Datos de productos, un array con los diferentes productos involucrados.
	$productos = array(
		array(	// Producto 1
			'csitproductcode'=>'electronic_good', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'LEVJNSL36GN', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'1254.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'1254.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO		
		),
		array(	// Producto 2
			'csitproductcode'=>'default', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'PENDRIVE 2GB KINGSTON', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'PENDRIVE 2GB', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'KSPDRV2g', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'248.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'248.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO			
		),
		......... // Otros productos
	);

为了将数据纳入初始需求,需要按照以下方式实例化类 Decidir\Data\Cybersource\Services 的对象。


	//Se combinan los datos de services con los comunes
	$datos_cs = array_merge($datos_comunes, $datos_services);

	$cybersource = new Decidir\Data\Cybersource\Services(
										$datos_cs,	// Datos de la operación
										$productos, // Datos de los productos
	);

	//Se agregan los datos el requerimiento inicial
	$sar_data->setCybersourceData($cybersource);

返回首页

数字商品

以下参数必须特别发送以供数字商品行业使用。此外,还需要发送涉及交易的具体产品数据。

	$datos_digitalgoods = array(
		'csmdd31'=>'', //Tipo de delivery. MANDATORIO. Valores posibles: WEB Session, Email, SmartPhone
	);

	//Datos de productos, un array con los diferentes productos involucrados.
	$productos = array(
		array(	// Producto 1
			'csitproductcode'=>'electronic_good', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'NOTEBOOK L845 SP4304LA DF TOSHIBA', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'LEVJNSL36GN', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'1254.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'1254.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO		
		),
		array(	// Producto 2
			'csitproductcode'=>'default', //Código de producto. MANDATORIO. Valores posibles(adult_content;coupon;default;electronic_good;electronic_software;gift_certificate;handling_only;service;shipping_and_handling;shipping_only;subscription)
			'csitproductdescription'=>'PENDRIVE 2GB KINGSTON', //Descripción del producto. MANDATORIO.
			'csitproductname'=>'PENDRIVE 2GB', //Nombre del producto. MANDATORIO.
			'csitproductsku'=>'KSPDRV2g', //Código identificador del producto. MANDATORIO.
			'csittotalamount'=>'248.40', //CSITTOTALAMOUNT=CSITUNITPRICE*CSITQUANTITY "999999[.CC]" Con decimales opcional usando el puntos como separador de decimales. No se permiten comas, ni como separador de miles ni como separador de decimales. MANDATORIO.
			'csitquantity'=>'1', //Cantidad del producto. MANDATORIO.
			'csitunitprice'=>'248.40', //Formato Idem CSITTOTALAMOUNT. MANDATORIO			
		),
		......... // Otros productos
	);

为了将数据纳入初始需求,需要按照以下方式实例化类 Decidir\Data\Cybersource\DigitalGoods 的对象。


	//Se combinan los datos de digitalgoods con los comunes
	$datos_cs = array_merge($datos_comunes, $datos_digitalgoods);

	$cybersource = new Decidir\Data\Cybersource\DigitalGoods(
										$datos_cs,	// Datos de la operación
										$productos, // Datos de los productos
	);

	//Se agregan los datos el requerimiento inicial
	$sar_data->setCybersourceData($cybersource);

返回首页

聚合商家

需要将以下额外的 VISA 数据添加到 SendAuthorizeRequest 的初始需求中,用于聚合商家。

需要使用特定参数实例化类 Decidir\Data\ComerciosAgregadores 的对象。

	$agregadores = new Decidir\Data\ComerciosAgregadores( array(
														'aindicador'=>0, //Indicador del tipo de documento. Numérico, 1 dígito. Valores posibles(0:cuit, 1:cuil, 2:número único).
														'adocumento'=>'2325xxxxxx9', //Número de CUIT, CUIL o Número Único(en el último caso se debe completar con ceros a la izquierda)
														'afactpagar'=>'c0000234321', //Número de factura a pagar. Alfanumérico de 12 caracteres.
														'afactdevol'=>'c0000234320', // Número de factura de anulación/devolución,
														'anombrecom'=>'jorge/Rufalo',  //Nombre del comercio o nombre y apellido del vendedor. Alfanumérico 20 caracteres. en el caso de nombre y apellido debe estar separado por "/".
														'adomiciliocomercio'=>'Salta', //Dirección del comercio o vendedor. Alfanumérico 20 caracteres.
														'anropuerta'=>'153', //Número de puerta. Alfanumérico 6 caracteres
														'acodpostal'=>'H3509XAP', //Código postal. Alfanumérico de 8 caracteres.
														'arubro'=>'', //Código de actividad (rubro). Alfanumérico de 5 caracteres.
														'acodcanal'=>'', //Código de canal. Alfanumérico de 3 caracteres.
														'acodgeografico'=>'',//Código geográfico del vendedor. Alfanumérico de 5 caracteres.
													));

然后将此信息包含在数据对象中

	$sar_data->setAgregadoresData($agregadores);

返回首页

交易拆分

需要将以下额外数据添加到 SendAuthorizeRequest 的初始需求中,以执行交易拆分。

返回首页

固定金额

需要使用特定参数实例化类 Decidir\Data\SplitTransacciones\MontoFijo 的对象。

	$split = new Decidir\Data\SplitTransacciones\MontoFijo( array(
														'impdist'=>'123.4#12#12.05',//Importe de cada una de las substransacciones. Los importes deben postearse separados por "#".
														'sitedist'=>'00100511#0234803245#00230031',//Número de comercio de cada uno de los subcomercios asociados al comercio padre
														'cuotasdist'=>'01#06#24',//cantidad de cuotas para cada subcomercio. Decimal de 2 dígitos.
														'idmodalidad'=>'S',// indica si la transacción es distribuida. (S= transacción distribuida; N y null = no distribida)
													));

然后将此信息包含在数据对象中

	$sar_data->setSplitData($split);

返回首页

百分比

需要使用特定参数实例化类 Decidir\Data\SplitTransacciones\Porcentaje 的对象。

	$split = new Decidir\Data\SplitTransacciones\Porcentaje( array(
														'idmodalidad'=>'S',// indica si la transacción es distribuida. (S= transacción distribuida; N y null = no distribida)
													));

然后将此信息包含在数据对象中

	$sar_data->setSplitData($split);

返回首页

GetAuthorizeAnswer

属于 Authorize 服务的 GetAuthorizeAnswer 操作必须按照以下方式调用:创建一个类 Decidir\Authorize\GetAuthorizeAnswer\Data 的实例,其中包含请求参数

	$gaa_data = new Decidir\Authorize\GetAuthorizeAnswer\Data( array(
																"security" => 'RV82RVHO5T0O5CZUUTX2FLHU', // Mandatorio. Código provisto por Decidir
																"merchant" => 22067736, // Mandatorio. Nro. de Comercio provisto por Decidir
																"requestKey" => '6bb242a3-d8c5-fcd8-57ef-3bb0280b6db4', // Mandatorio. Private Request Key devuelta por el requerimiento SendAuthorizeRequest
																"answerKey" => '77215fe6-f9d5-f1c2-372b-c0065e0c4429', // Mandatorio. Answer Key devuelta por la función callback del formulario de pago.
															));

然后,通过传递前面创建的对象调用服务

	$gaa_rta = $connector->Authorize()->getAuthorizeAnswer($gaa_data);

它将返回一个 Decidir\Authorize\GetAuthorizeAnswer\Response 类的实例

	$gaa_rta->getStatusMessage(); // Mensaje del estado del requerimiento
	$gaa_rta->getStatusCode(); // Código de estado
	$gaa_rta->getAuthorizationKey(); // Authorization Key
	$gaa_rta->getPayload(); // Array asociativo <clave=>valor> con información adicional.

返回首页

Execute

属于 Authorize 服务的 Execute 操作允许对交易执行不同的操作,如下所述。

返回首页

取消

为了执行交易的取消,需要创建一个类 Decidir\Authorize\Execute\Anulacion 的实例,其中包含请求参数

	$anul_data = new Decidir\Authorize\Execute\Anulacion( array(
																"security" => 'RV82RVHO5T0O5CZUUTX2FLHU', // Mandatorio. Código provisto por Decidir
																"merchant" => 22067736, // Mandatorio. Nro. de Comercio provisto por Decidir
																"nro_operacion" => 123456, // Mandatorio. Nro. de Operación.
															));

然后,通过传递前面创建的对象调用服务

	$anul_rta = $connector->Authorize()->execute($anul_data);

它将返回一个 Decidir\Authorize\Execute\Response 类的实例

	$anul_rta->getStatusMessage(); // Mensaje del estado del requerimiento
	$anul_rta->getStatusCode(); // Código de estado
	$anul_rta->getAuthorizationKey(); // Authorization Key
	$anul_rta->getPayload(); // Array asociativo <clave=>valor> con información adicional.

返回首页

全额退款

为了执行交易的退款,需要创建一个类 Decidir\Authorize\Execute\Devolucion\Total 的实例,其中包含请求参数

	$devol_data = new Decidir\Authorize\Execute\Devolucion\Total( array(
																"security" => 'RV82RVHO5T0O5CZUUTX2FLHU', // Mandatorio. Código provisto por Decidir
																"merchant" => 22067736, // Mandatorio. Nro. de Comercio provisto por Decidir
																"nro_operacion" => 123456, // Mandatorio. Nro. de Operación.
															));

然后,通过传递前面创建的对象调用服务

	$devol_rta = $connector->Authorize()->execute($devol_data);

它将返回一个 Decidir\Authorize\Execute\Response 类的实例

	$devol_rta->getStatusMessage(); // Mensaje del estado del requerimiento
	$devol_rta->getStatusCode(); // Código de estado
	$devol_rta->getAuthorizationKey(); // Authorization Key
	$devol_rta->getPayload(); // Array asociativo <clave=>valor> con información adicional.

返回首页

部分退款

为了执行交易的部分退款,需要创建一个类 Decidir\Authorize\Execute\Devolucion\Parcial 的实例,其中包含请求参数

	$devol_data = new Decidir\Authorize\Execute\Devolucion\Parcial( array(
																"security" => 'RV82RVHO5T0O5CZUUTX2FLHU', // Mandatorio. Código provisto por Decidir
																"merchant" => 22067736, // Mandatorio. Nro. de Comercio provisto por Decidir
																"nro_operacion" => 123456, // Mandatorio. Nro. de Operación.
																"monto" => 12.00, // Mandatorio. Monto a devolver.
															));

然后,通过传递前面创建的对象调用服务

	$devol_rta = $connector->Authorize()->execute($devol_data);

它将返回一个 Decidir\Authorize\Execute\Response 类的实例

	$devol_rta->getStatusMessage(); // Mensaje del estado del requerimiento
	$devol_rta->getStatusCode(); // Código de estado
	$devol_rta->getAuthorizationKey(); // Authorization Key
	$devol_rta->getPayload(); // Array asociativo <clave=>valor> con información adicional.

返回首页

GetByOperationId

属于 Operation 服务的 GetByOperationId 操作允许在线查询交易的最新状态,必须按照以下方式调用:创建一个类 Decidir\Operation\GetByOperationId\Data 的实例,其中包含请求参数

	$gboi_data = new Decidir\Operation\GetByOperationId\Data( array(
																"idsite" => 22067736, // Mandatorio. Nro. de Comercio provisto por Decidir
																"idtransactionsit" => 123456, // Mandatorio. Nro. de operación único y propio del comercio
															));

然后,通过传递前面创建的对象调用服务

	$gboi_rta = $connector->Operation()->getByOperationId($gboi_data);

它将返回一个 Decidir\Operation\GetByOperationId\Response 类的实例

	$gboi_rta->getStatusMessage(); // Mensaje del estado del requerimiento
	$gboi_rta->getStatusCode(); // Código de estado
	$gboi_rta->getEstado_descri(); // Estado de la transacción
	......

返回首页

参考表

支付方式代码

支付方式 名称
1 visa
6 美洲Express
8 大来卡
15 万事达卡
20 万事达卡测试
23 购物卡
24 橙卡
25 付款易
26 拉皮帕戈
27 卡巴尔
29 伊塔尔克雷德
30 阿根廷卡
31 visa借记卡
34 COOPEPLUS
36 ARCASH
37 NEXO
38 CREDIMAS
39 内华达
41 付款我的账户
42 原生的
43 MAS/CENCOSUD信用卡
44 CETELEM
45 NACIONPYMES
46 PAYSAFECARD
47 在线钱包
48 支付箱

返回首页

状态代码

状态ID 描述
1 已录入
2 正在处理
3 已处理
4 已授权
5 拒绝
6 已确认
7 已取消
8 取消确认
9 已退货
10 退货确认
11 预授权
12 过期
13 授权未完成
14 授权(*)
15 准备撤销
16 注册到Visa
17 Visa开始验证
18 发送至Visa验证
19 Visa验证OK
20 从Visa接收
21 Visa验证不OK
22 已生成发票
23 未生成发票
24 未认证拒绝
25 无效数据拒绝
28 注册到IdValidador
29 发送至IdValidador
32 未验证拒绝
38 购买超时
50 已录入分发
51 被分组拒绝
52 被分组取消

返回首页

省份

省份 代码
CABA C
布宜诺斯艾利斯 B
卡塔马卡 K
查科 H
楚布特 U
科尔多瓦 X
科连特斯 W
恩特雷里奥斯 R
福尔摩萨 P
胡胡伊 Y
拉潘帕 L
拉里奥哈 F
门多萨 M
米森特斯 N
内乌肯 Q
里奥内格罗 R
萨尔特 A
圣胡安 J
圣路易斯 D
圣克鲁斯 Z
圣菲 S
圣地亚哥德尔埃斯特罗 G
火地岛 V
图库曼 T

返回首页