micheldamasceno / moip
包 Moip
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
This package is not auto-updated.
Last update: 2024-09-20 19:30:07 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 的实际生产环境中处理。
注意:在定义环境时,请确保您正在使用对应环境的认证,在 Moip 中,每个环境都有自己的 API 认证密钥。
setEnvironment($environment) $environment : String ('test')
$moip->setEnvironment('test');
setCredential()
Moip 需要您进行认证才能处理 API 请求,因此在进行任何请求之前,您必须向 Moip 提供由 TOKEN 和 KEY 组成的 API 认证信息。
$credential 参数是一个关联数组,包含 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'。
- Basic:将执行对 Moip XML 请求所需的最小数据的验证。
- Identification:将验证处理 Moip XML 所需的数据,通常用于在 Moip 结账页的第二步中重定向客户或使用 Moip 透明支付。
validate($validateType)
$validateType : String ('Basic' 或 'Identification')
$moip->validate('Identification');
setUniqueID()
setUniqueID() 方法将为 Moip XML 中的 <IdProprio> 标签分配值。
- <IdProprio>:您的唯一订单标识符,该信息将随我们的状态变更通知发送给您,以便您可以识别订单和处理其状态。
setUniqueID($id)
$id : String
$moip->setUniqueID('ABCD123456789');
setValue()
setValue() 方法将为 Moip XML 中的 <Valor> 标签分配值。
- <Valor>:负责定义应支付的价值。
setValue($value)
$value : Numeric
$moip->setValue('100.00');
setAdds()
setAdds() 方法将为 Moip XML 中的 <Acrescimo> 标签分配值。
- <Acrescimo>:负责定义应支付的增加值。
setAdds($value)
$value : Numeric
$moip->setAdds('15.00');
setDeduct()
setDeduct() 方法将为 Moip XML 中的 <Deducao> 标签分配值。
- <Deducao>:负责定义将从总支付金额中扣除的折扣值。
setDeduct($value)
$value : Numeric
$moip->setDeduct('15.00');
setReason()
setReason() 方法将为 Moip XML 中的 <Razao> 标签分配值。
- <Razao>:负责定义支付的原因。
- 此字段在支付指令中始终是必需的。
setReason($value)
$value : String
$moip->setReason('Pagamento de teste do Moip-PHP');
setPayer()
setPayer() 方法将为 Moip XML 中的 <Pagador> 节点分配值。
- <Pagador>:包含支付者信息的节点。
- 姓名 : <Nome> : 支付者的全名
- 电子邮件 : <Email> : 支付者的电子邮件
- 付款者ID : <IdPagador> : 支付者的唯一标识
- 身份 : <Identidade> : 支付者的身份(CPF)
- 电话 : <TelefoneCelular> : 支付者的次要联系电话
- 账单地址 : <EnderecoCobranca> : 支付者的地址
- 地址 : <Logradouro> : 支付者的街道、大道、道路等
- 号码 : <Numero> : 支付者的住宅号码
- 补充 : <Complemento> : 支付者地址的补充信息
- 城市 : <Cidade> : 支付者地址所在城市
- 街区 : <Bairro> : 支付者地址所在街区
- 州 : <Estado> : 支付者地址所在州,ISO-CODE 格式(UF)
- 国家 : <Pais> : 支付者所在国家,ISO-CODE 格式
- 邮政编码 : <CEP> : 地址的邮政编码
- 电话 : <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() 方法将值赋给 XML Moip 中 "<FormasPagamento>" 节点的 "<FormaPagamento>" 标签。
<FormaPagamento>: 定义在 Moip 结算页面中向付款者展示的支付方式。
- bill : 为 Moip 结算页面提供 "银行汇票" 作为支付方式。
- financing : 为 Moip 结算页面提供 "分期付款" 作为支付方式。
- debit : 为 Moip 结算页面提供 "账户扣款" 作为支付方式。
- creditCard : 为 Moip 结算页面提供 "信用卡" 作为支付方式。
- debitCard : 为 Moip 结算页面提供 "借记卡" 作为支付方式。
addPaymentWay($way)
$way : 字符串 ('bill','financing','debit','creditCard','debitCard')
$moip->addPaymentWay('creditCard');
$moip->addPaymentWay('billet');
$moip->addPaymentWay('financing');
$moip->addPaymentWay('debit');
$moip->addPaymentWay('debitCard');
setBilletConf()
setBilletConf() 方法将值赋给 XML Moip 中 "<Boleto>" 节点,该节点负责定义银行汇票的额外配置和个人化。
- $expiration : 格式为 "AAAA-MM-DD" 的日期或天数。
- $workingDays : 如果 "$expiration" 是天数,您可以设置为 "true" 以使其按工作日计算,默认为连续日。
- $instructions : 要打印在汇票上的附加消息,最多三条消息。
- $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() 方法将值赋给 XML Moip 中 "<Mensagens>" 节点的 "<Mensagem>" 标签。
- <Mensagens>: 包含 "<Mensagens>" 的节点。
- <Mensagem>: 标签,定义在 Moip 结算页面中显示的附加消息。
addMessage($msg)
$msg : 字符串
$moip->addMessage('Seu pedido contem os produtos X,Y e Z.');
setReturnURL()
setReturnURL() 方法将值赋给 XML Moip 中的 "<URLRetorno>" 标签,该标签负责定义在通过 Moip 结算页面完成支付后买家将被重定向的 URL。
setReturnURL($url)
$url : 字符串
$moip->setReturnURL('https://meusite.com.br/cliente/pedido/bemvindodevolta');
setNotificationURL()
setNotificationURL() 方法将值赋给 XML Moip 中的 "<URLNotificacao>" 标签,该标签负责定义 Moip 应通知的 URL,以 NASP(支付状态变更通知)的形式报告状态变更。
setNotificationURL($url)
$url : 字符串
$moip->setNotificationURL('https://meusite.com.br/nasp/');
addComission()
addComission() 方法将值赋给 XML Moip 中的 "<Comissoes>" 标签,该标签负责为交易分配次要接收者。
- $reason : 次要接收者将收到的价值的原因/动机。
- $receiver: 接收价值的用户的 Moip 登录名。
- $value : 将分配给次要接收者的价值。
- $percentageValue: 如果设置为"true",则定义该值将根据交易总金额的百分比来计算。
- $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()方法将值分配给Moip XML中的"<Parcelamentos>"标签,这些标签负责配置付款人可用的分期付款选项。
- $min : 付款人可用的分期付款的最小数量。
- $max : 付款人可用的分期付款的最大数量。
- $rate : 每期利息的月利率。
- $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用户。
- $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获得的响应数据。
- response : 如果成功,则为"true",如果发生错误,则为"false"。
- error : 当"response"为"false"时,始终返回一个消息。
- 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的响应数据。
- response : 如果Moip的"<Status>"返回"成功",则为"true",如果返回"失败",则为"false"。
- error : 当"response"为"false"时,始终返回一个消息。
- token: 当"response"为"true"时,返回生成的支付TOKEN。
- 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()方法返回一个包含分期付款信息和相应单期付款金额以及根据模拟利息计算的总付款金额的Array()。
-
REQUEST
-
$login: 用户Moip登录名。
-
$maxParcel: 要查询的最大分期付款数。
-
$rate: 模拟利息税率。
-
$simulatedValue: 将模拟支付的金额。
-
RESPONSE
-
response : 如果Moip响应带有"<Status>" "成功",则为"true",如果为"失败",则为"false"。
-
installment: 与值相对应的分期付款编号。
-
total : 应付的总金额。
-
rate: 分配的利率。
-
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
)
)
)