camcima/moip-php

PHP 的 Moip Gateway 集成

dev-master 2013-01-14 18:45 UTC

This package is auto-updated.

Last update: 2024-09-07 04:41:54 UTC


README

O Moip-PHP 是一个库,它实现了 Moip 指令 XML 的抽象层,允许您在不污染代码的情况下整合 API 服务。快速示例

include_once "autoload.inc.php";

$moip = new Moip();
$moip->setEnvironment('test');
$moip->setCredential(array(
    'key' => 'ABABABABABABABABABABABABABABABABABABABAB',
    'token' => '01010101010101010101010101010101'
    ));

$moip->setUniqueID(false);
$moip->setValue('100.00');
$moip->setReason('Teste do Moip-PHP');

$moip->validate('Basic');

print_r($moip->send());

O Moip-PHP 使用 Fluent Interfaces 标准,因此您可以使用以下方式实现上面的示例

include_once "autoload.inc.php";

$moip = new Moip(); 
print_r($moip->setEnvironment('test')
        ->setCredential(array(
    'key' => 'ABABABABABABABABABABABABABABABABABABABAB',
    'token' => '01010101010101010101010101010101'
    ))->setUniqueID(false)
        ->setValue('100.00')
        ->setReason('Teste do Moip-PHP')
        ->validate('Basic')
        ->send());

可用方法

以下列出了您可以使用 Moip-PHP 的方法及其详细说明。

Moip()

构造方法。

Moip()

$moip = new Moip();

setEnvironment()

该方法定义了请求将被处理的环境,'test' 表示将在 Moip 的测试环境(沙盒)中处理,省略此方法则表示请求将在生产环境中处理。

重要:在定义环境时,请确保您使用的是对应环境的认证,在 Moip 中,每个环境都有自己的 API 认证密钥。

setEnvironment($environment) $environment : String ('test')

$moip->setEnvironment('test');

setCredential()

Moip 需要您进行身份验证才能处理 API 请求。因此,在执行任何请求之前,您应向 Moip 提供您的 API 认证凭据,包括 TOKEN 和 KEY。

$credentials 参数是一个关联数组,包含 key 和 token 键(例如:array('key' => 'sua_key', 'token' => 'seu_token'))。如果您还没有这些数据,请参阅如何从您的沙盒账户中获取它们。

setCredential($credential)

$credential : Array('key','token')

$moip->setCredential(array(
        'key' => 'SUA_KEY',
    	'token' => 'SEU_TOKEN'
    	));

validate()

validate() 方法将验证您要处理的指令类型所需的数据。您可以选择两种验证级别之一,'Basic' 或 'Identification'。

  1. Basic : 将验证 XML 请求所需的最小数据。
  2. Identification : 将验证处理包含 Moip 识别信息的 XML 所需的数据,通常用于在 Moip 付款页面的第二步中重定向客户或使用 Moip 透明支付。

validate($validateType)

$validateType : String ('Basic' 或 'Identification')

$moip->validate('Identification');

setUniqueID()

setUniqueID() 方法将值赋给 XML 中 Moip 的 "<IdProprio>" 标签。

  1. <IdProprio>: 您的唯一订单标识符,该信息将在我们的状态变更通知中发送给您,以便您能够识别订单并处理其状态。

setUniqueID($id)

$id : String

$moip->setUniqueID('ABCD123456789');

setValue()

setValue() 方法将值赋给 XML 中 Moip 的 "<Valor>" 标签。

  1. <Valor>: 负责定义应支付的价值。

setValue($value)

$value : Numeric

$moip->setValue('100.00');	

setAdds()

setAdds() 方法将值赋给 XML 中 Moip 的 "<Acrescimo>" 标签。

  1. <Acrescimo>: 负责定义应支付的增加值。

setAdds($value)

$value : Numeric

$moip->setAdds('15.00');	

setDeduct()

setDeduct() 方法将值赋给 XML 中 Moip 的 "<Deducao>" 标签。

  1. <Deducao>: 负责定义将从中扣除的折扣金额。

setDeduct($value)

$value : Numeric

$moip->setDeduct('15.00');

setReason()

setReason() 方法将值赋给 XML 中 Moip 的 "<Razao>" 标签。

  1. <Razao>: 负责定义付款的原因。
  2. 此字段在付款指令中始终是必需的。

setReason($value)

$value : String

$moip->setReason('Pagamento de teste do Moip-PHP');

setPayer()

setPayer() 方法将值赋给 XML 中 Moip 的 "<Pagador>" 节点。

  1. <Pagador>: 包含付款人信息的节点。
  2. name : <Nome> : 付款人的全名
  3. 邮箱 : <Email> : 支付者电子邮件
  4. payerId : <IdPagador> : 支付者唯一标识
  5. 身份 : <Identidade> : 支付者身份(CPF)
  6. 电话 : <TelefoneCelular> : 支付者次要联系电话
  7. 账单地址 : <EnderecoCobranca> : 支付者地址
  8. 地址 : <Logradouro> : 支付者街道,路,大道等
  9. 号码 : <Numero> : 支付者住宅号码
  10. 补充 : <Complemento> : 支付者地址补充信息
  11. 城市 : <Cidade> : 支付者地址城市
  12. 区域 : <Bairro> : 支付者地址区域
  13. 州 : <Estado> : 支付者地址州,ISO-CODE 格式(UF)
  14. 国家 : <Pais> : 支付者所在国家,ISO-CODE 格式
  15. 邮政编码 : <CEP> : 地址邮政编码
  16. 电话 : <TelefoneFixo> : 支付者联系电话

setPayer($value)

$value : 数组 ('name','email','payerId','identity', 'phone','billingAddress' => Array('address','number','complement','city','neighborhood','state','country','zipCode','phone'))

$moip->setPayer(array('name' => 'Nome Sobrenome',
    	'email' => 'email@cliente.com.br',
    	'payerId' => 'id_usuario',
        'billingAddress' => array('address' => 'Rua do Zézinho Coração',
        		'number' => '45',
        		'complement' => 'z',
        		'city' => 'São Paulo',
        		'neighborhood' => 'Palhaço Jão',
        		'state' => 'SP',
        		'country' => 'BRA',
        		'zipCode' => '01230-000',
        		'phone' => '(11)8888-8888')));

addPaymentWay()

addPaymentWay() 方法将值赋给 Moip XML 中的 "<FormaPagamento>" 标签,该标签属于 "<FormasPagamento>" 节点。

<FormaPagamento>: 定义在 Moip 结账页面显示给支付者的支付方式。

  1. 账单 : 在 Moip 结账中提供“银行汇票”作为支付方式。
  2. 分期付款 : 在 Moip 结账中提供“分期付款”作为支付方式。
  3. 借记 : 在 Moip 结账中提供“账户借记”作为支付方式。
  4. 信用卡 : 在 Moip 结账中提供“信用卡”作为支付方式。
  5. 借记卡 : 在 Moip 结账中提供“借记卡”作为支付方式。

addPaymentWay($way)

$way : 字符串 ('billet','financing','debit','creditCard','debitCard')

$moip->addPaymentWay('creditCard');
$moip->addPaymentWay('billet');
$moip->addPaymentWay('financing');
$moip->addPaymentWay('debit');
$moip->addPaymentWay('debitCard');

setBilletConf()

setBilletConf() 方法将值赋给 Moip XML 中的 "<Boleto>" 节点,该节点负责定义银行汇票的附加配置和个性化。

  1. $expiration : 格式为 "AAAA-MM-DD" 的日期或天数。
  2. $workingDays : 如果 "$expiration" 是天数,你可以用 "true" 定义它是否按工作日计算,默认为连续日。
  3. $instructions : 要打印在汇票上的额外消息,最多三条消息。
  4. $uriLogo : 您公司标志的 URL,最大宽度 75px,高度 40px。

setBilletConf($expiration, $workingDays, $instructions, $uriLogo)

$expiration : 整数或日期

$workingDays : 布尔值

$instructions : 数组()

$uriLogo : 字符串

$moip->setBilletConf("2011-04-06",
        	false,
        	array("Primeira linha",
            	"Segunda linha",
            	"Terceira linha"),
        	"http://seusite.com.br/logo.gif");

addMessage()

addMessage() 方法将值赋给 Moip XML 中的 "<Mensagem>" 标签,该标签属于 "<Mensagens>" 节点。

  1. <Mensagens>: 包含 "<Mensagens>" 的节点。
  2. <Mensagem>: 定义在 Moip 结账页面显示的额外消息的标签。

addMessage($msg)

$msg : 字符串

$moip->addMessage('Seu pedido contem os produtos X,Y e Z.');

setReturnURL()

setReturnURL() 方法将值赋给 Moip XML 中的 "<URLRetorno>" 标签,该标签负责定义在通过 Moip 结账完成支付后,买家将被重定向的 URL。

setReturnURL($url)

$url : 字符串

$moip->setReturnURL('https://meusite.com.br/cliente/pedido/bemvindodevolta');

setNotificationURL()

setNotificationURL() 方法将值赋给 Moip XML 中的 "<URLNotificacao>" 标签,该标签负责定义 Moip 应通知的 URL,以 NASP(支付状态变更通知)的形式发送状态变更。

setNotificationURL($url)

$url : 字符串

$moip->setNotificationURL('https://meusite.com.br/nasp/');

addComission()

addComission() 方法将值赋给 Moip XML 中的 "<Comissoes>" 标签,该标签负责为交易分配次级接收者。

  1. $reason : 次级接收者将收到的金额的原因/动机。
  2. $receiver: 接收金额的用户的 Moip 登录名。
  3. $value : 分配给次级接收者的金额。
  4. $percentageValue: 当"true"时,定义计算值将基于交易总金额的百分比。
  5. $ratePayer: 当"true"时,定义此次要接收者将使用收到的金额支付Moip税费。

addComission($reason, $receiver, $value, $percentageValue, $ratePayer)

$reason : 字符串

$receiver : 字符串

$value : 数字

$percentageValue: 布尔值

$ratePayer : 布尔值

$moip->addComission('Razão do Split',
		'recebedor_secundario',
		'5.00');
$moip->addComission('Razão do Split',
		'recebedor_secundario_2',
		'12.00',
		true,
		true);

addParcel()

addParcel()方法将值分配给XML Moip中的"<Parcelamentos>"标签,该标签负责配置可供付款者选择的分期付款选项。

  1. $min : 付款者可用的最小分期数。
  2. $max : 付款者可用的最大分期数。
  3. $rate : 每期利息值。
  4. $transfer : 当"true"时,定义Moip的标准利息值将由付款者支付。

addParcel($min, $max, $rate, $transfer)

$min : 数字

$max : 数字

$rate : 数字

$transfer : 布尔值

$moip->addParcel('2', '4');
$moip->addParcel('5', '7', '1.00');
$moip->addParcel('8', '12', null, true);

setReceiver()

setReceiver()方法将值分配给"<Recebedor>"节点中的"<LoginMoIP>"标签,以标识将在Moip上接收付款的Moip用户。

  1. $receiver : 主要接收者的Moip登录名。

setReceiver($receiver)

$receiver : 字符串

$moip->setReceiver('integracao@labs.moip.com.br');

getXML()

getXML()方法将返回包含您已配置的所有属性的XML,此方法可帮助您确切了解将发送给Moip的XML。

getXML()

$moip = new Moip();
$moip->setEnvironment('test');
$moip->setCredential(array(
    'key' => 'ABABABABABABABABABABABABABABABABABABABAB',
    'token' => '01010101010101010101010101010101'
    ));
$moip->setUniqueID(false);
$moip->setValue('100.00');
$moip->setReason('Teste do Moip-PHP');
$moip->validate('Basic');

print_r($moip->getXML());

    //IRÃ? IMPRIMIR
    <?xml version="1.0" encoding="utf-8"?>
    <EnviarInstrucao>
        <InstrucaoUnica>
            <IdProprio></IdProprio>
            <Razao>Teste do Moip-PHP</Razao>
            <Valores>
                <Valor moeda="BRL">100.00</Valor>
            </Valores>
        </InstrucaoUnica>
    </EnviarInstrucao>

send()

send()方法执行将指令发送到Moip,并返回从Moip获取的响应数据。

  1. response : 在成功时为"true",在出现错误时为"false"。
  2. error : 当"response"为"false"时,始终返回一条消息。
  3. xml: 当"response"为"true"时,始终返回Moip的响应XML。

send()

$moip = new Moip();
$moip->setEnvironment('test');
$moip->setCredential(array(
    'key' => 'ABABABABABABABABABABABABABABABABABABABAB',
    'token' => '01010101010101010101010101010101'
    ));
$moip->setUniqueID(false);
$moip->setValue('100.00');
$moip->setReason('Teste do Moip-PHP');
$moip->validate('Basic');

print_r($moip->send());

    //IRÃ? IMPRIMIR
    stdClass Object
    (
        [response] => 1
        [error] =>
        [xml] => <ns1:EnviarInstrucaoUnicaResponse xmlns:ns1="http://www.moip.com.br/ws/alpha/"><Resposta><ID>201209042007216380000000989104</ID><Status>Sucesso</Status><Token>M2C031R2Q0Z9W0Y4Q2S0H0W7E2G1Z6P3E8C0C0W050T01070Y9Y8V9G1F0F4</Token></Resposta></ns1:EnviarInstrucaoUnicaResponse>
    )

getAnswer()

getAnswer()方法以对象形式返回Moip的响应数据。

  1. response : 在Moip的"<Status>"返回"成功"时为"true",在返回"失败"时为"false"。
  2. error : 当"response"为"false"时,始终返回一条消息。
  3. token: 当"response"为"true"时,返回生成的付款TOKEN。
  4. payment_url : 当"response"为"true"时,返回为将客户重定向到带有付款TOKEN的Moip结账URL。

getAnswer()

$moip = new Moip();
$moip->setEnvironment('test');
$moip->setCredential(array(
    'key' => 'ABABABABABABABABABABABABABABABABABABABAB',
    'token' => '01010101010101010101010101010101'
    ));

$moip->setUniqueID(false);
$moip->setValue('100.00');
$moip->setReason('Teste do Moip-PHP');
$moip->validate('Basic');
$moip->send();

print_r($moip->getAnswer());

//IRÃ? IMPRIMIR
stdClass Object
(
    [response] => 1
    [error] =>
    [token] => 92D091R2I0Y9X0E4T2K034L2H2V4H2J6L9R0S0T0K0N0L0T0Y9H879H144O8
    [payment_url] => https://desenvolvedor.moip.com.br/sandbox/Instrucao.do?token=92D091R2I0Y9X0E4T2K034L2H2V4H2J6L9R0S0T0K0N0L0T0Y9H879H144O8
)

queryParcel()

queryParcel()方法返回一个包含分期付款信息和每期付款值以及根据模拟利息计算的应付总金额的数组。

  1. REQUEST

  2. $login: 用户Moip登录名。

  3. $maxParcel: 要查询的最大分期数。

  4. $rate: 模拟的利息率。

  5. $simulatedValue: 将进行模拟支付的金额。

  6. RESPONSE

  7. response : 在Moip的响应中包含"<Status>" "成功"时为"true",在"失败"时为"false"。

  8. installment: 与值对应的分期数。

  9. total : 应付的总金额。

  10. rate: 分配的利息率。

  11. value: 每期付款金额。

queryParcel($login, $maxParcel, $rate, $simulatedValue)

$login : 字符串

$maxParcel : 数字

$rate : 数字

$simulatedValue: 数字

    $moip = new Moip();
    $moip->setEnvironment('test');
    $moip->setCredential(array(
        'key' => 'ABABABABABABABABABABABABABABABABABABABAB',
        'token' => '01010101010101010101010101010101'
        ));


    print_r($moip->queryParcel('integracao@labs.moip.com.br', '4', '1.99', '100.00'));


    //IRÃ? IMPRIMIR
    Array
    (
        [response] => 1
        [installment] => Array
            (
                [1] => Array
                    (
                        [total] => 100.00
                        [rate] => 1.99
                        [value] => 100.00
                    )


                [2] => Array
                    (
                        [total] => 103.00
                        [rate] => 1.99
                        [value] => 51.50
                    )


                [3] => Array
                    (
                        [total] => 104.01
                        [rate] => 1.99
                        [value] => 34.67
                    )


                [4] => Array
                    (
                        [total] => 105.04
                        [rate] => 1.99
                        [value] => 26.26
                    )


            )


    )