ironkeith / moneris-eselectplus-api
一种更简洁的方式来访问Moneris eSELECTplus API。
0.3.1
2020-06-30 15:51 UTC
Requires
- php: >=5.2.4
This package is not auto-updated.
Last update: 2024-10-01 19:28:39 UTC
README
Moneris为eSelectPlus提供的PHP API非常混乱,它像游行中的糖果一样抛出警告。这是一个简单的替代方案,适合喜欢PHP5且讨厌错误的人。
注意:目前,我只为购买、验证、预授权、抓取和退款操作编写了支持。我还包括了对AVS/CVD验证的支持。
开始使用
第一步是设置配置,并获取Moneris网关对象。
$config = array(
'api_key' => 'yesguy',
'store_id' => 'store1',
'environment' => Moneris::ENV_TESTING
);
$moneris = Moneris::create($config);
配置中还有一些实用的可选参数。
$config = array(
'api_key' => 'yesguy',
'store_id' => 'store1',
'environment' => Moneris::ENV_TESTING,
// optional:
'require_avs' => true, // default: false
'avs_codes' => array('A','B', 'D', 'M', 'P', 'W', 'X', 'Y', 'Z'), // default
'require_cvd' => true, // default: true
'cvd_codes' => array('M', 'Y', 'P', 'S', 'U') // default
);
进行购买非常直接。
// set up $moneris like we did ^^ up there
$params = array(
'cc_number' => '4242424242424242',
'order_id' => 'test' . date("dmy-G:i:s"),
'amount' => '20.00',
'expiry_month' => date('m', $time),
'expiry_year' => date('y', $time)
);
$result = $moneris->purchase($params);
结果对象会告诉你一切如何进行。
$result->was_successful(); // did the transaction work?
$result->failed_avs(); // did the transaction pass the AVS check?
$result->failed_cvd(); // did the transaction pass the CVD check?
$result->error_message(); // if something went wrong, what was it?
一个常见的流程可能看起来像这样。
$errors = array();
$result = $moneris->purchase($params);
if ($result->was_successful()) {
// HOORAY! Party like it's 1999.
} else {
$errors[] = $result->error_message();
}
但是有一个注意事项!如果交易失败AVS/CVD,你仍然需要将其作废!一个简单的解决方案是首先验证卡片!
$errors = array();
$verification_result = $moneris->verify($params);
if ($verification_result->was_successful() && $verification_result->passed_avs() && $verification_result->passed_cvd()) {
$purchase_result = $moneris->purchase($params);
if ($purchase_result->was_successful()) {
// HOORAY! Party like it's 1999.
} else {
$errors[] = $result->error_message();
}
}
或者
$errors = array();
$purchase_result = $moneris->purchase($params);
if ($purchase_result->was_successful() && ( $purchase->failed_avs() || $purchase_result->failed_cvd() )) {
$errors[] = $purchase_result->error_message();
$void = $moneris->void($purchase_result->transaction());
} else if (! $purchase_result->was_successful()) {
$errors[] = $purchase_result->error_message();
} else {
// OMG we're rich!
}
您可以通过交易对象查看交易详情。
$result = $moneris->purchase($params);
$transaction = $result->transaction();
您可以从中了解一些有趣的内容,以及看到Moneris返回的XML。
$transaction->number(); // receipt->TransID from the Moneris XML response
$transaction->amount(); // amount processed
$transaction->response(); // the SimpleXMLElement from the parsed Moneris response.
抓取、作废和退款方法都可以接受交易对象作为第一个参数。
$result = $moneris->purchase($params);
$moneris->refund($result->transaction()); // refund the full purchase
$moneris->refund($result->transaction(), null, '5.00'); // refund $5.00
// OR
$moneris->refund($result->transaction()->number(), $params['order_id'], $params['amount']); // refund the full purchase
$moneris->refund($result->transaction()->number(), $params['order_id'], '5.00'); // refund $5.00
$result = $moneris->preauth($params);
$moneris->capture($result->transaction());
// OR
$moneris->capture($result->transaction()->number(), $params['order_id'], $params['amount']);
$result = $moneris->purchase($params);
$moneris->void($result->transaction());
// OR
$moneris->void($result->transaction()->number(), $params['order_id']);
如果您有任何问题,请告诉我。在Twitter上关注@ironkeith。