0
下面是「Paytrail_Module_Rest.php」的示例代碼,這是一組用於與支付網關的其餘api交互的類。某些類可以提前實例化,例如(Paytrail_Module_rest持有憑證),但有些需要用僅在控制器中可用的信息實例化(例如Paytrail_Module_Rest_Payment_S1,其設置付款細節如價格)如何在slim3中注入更復雜的服務,如Paytrail
Can任何人都建議將其注入slim3的乾淨方式?我看不到使用標準容器注入方法的好方法。
$urlset = new\App\Service\Paytrail\Paytrail_Module_Rest_Urlset(
"https://www.demoshop.com/sv/success", // return address for successful payment
"https://www.demoshop.com/sv/failure", // return address for failed payment
"https://www.demoshop.com/sv/notify", // address for payment confirmation from Paytrail server
"" // pending url not in use
);
$orderNumber = '1';
$price = 99.00;
$payment = new \App\Service\Paytrail\Paytrail_Module_Rest_Payment_S1($orderNumber, $urlset, $price);
$payment->setLocale('en_US');
$module = new \App\Service\Paytrail\Paytrail_Module_Rest(13466, '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ');
try {
$result = $module->processPayment($payment);
}
catch (\App\Service\Paytrail\Paytrail_Exception $e) {
die('Error in creating payment to Paytrail service:'. $e->getMessage());
}
echo $result->getUrl();
(這裏列出憑據公開測試證書)
Slim支持任何PSR-7 HTTP消息實現。您可以爲此編寫一箇中間件並使用操作中的屬性。 – DanielO