オムニペイには完全なドキュメントがありません! 承認後にキャプチャを実行しようとしていますが、正しく取得できないようです。
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
use Omnipay\Common\GatewayFactory;
class Welcome extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('url');
}
public function authorize() {
$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername('***');
$gateway->setPassword('***');
$gateway->setSignature('***');
$gateway->setTestMode(true);
$response = $gateway->authorize(
array(
'cancelUrl' => base_url('welcome/authorize_return'),
'returnUrl' => base_url('welcome/authorize_return'),
'amount' => '1.99',
'currency' => 'USD'
)
)->send();
$response->redirect();
}
public function authorize_return() {
$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername('***');
$gateway->setPassword('***');
$gateway->setSignature('***');
$gateway->setTestMode(true);
$response = $gateway->completeAuthorize(
array(
'cancelUrl' => base_url('welcome/authorize_return'),
'returnUrl' => base_url('welcome/authorize_return'),
'amount' => '1.99',
'currency' => 'USD'
)
)->send();
echo $responsemsg = $response->getMessage();
$data = $response->getData();
$ref = $response->getTransactionReference();
$response2 = $gateway->capture($data)->send();
print_r($response2);
}
}
ステータスを「保留」から「完了」に変更する必要があります (例: 製品を発送した後)。
また、いつどのように払い戻しを行うことができますか? 取引のステータスが完了の場合、返金できますか? または特定のステータスのみ、それらは何ですか?
「支払いステータス」が「保留中」で「完了」の場合、「このタイプの取引は返金できません」というメッセージが表示されます。
function __construct() {
parent::__construct();
$this->load->helper('url');
$this->gateway = GatewayFactory::create('PayPal_Express');
$this->gateway->setUsername('***');
$this->gateway->setPassword('***');
$this->gateway->setSignature('***');
$this->gateway->setTestMode(true);
}
public function refund($transactionReference, $amount) {
$ref = $transactionReference;
$data = array(
'transactionReference' => $ref,
'amount' => $amount,
);
$response = $this->gateway->refund($data)->send();
if ($response->isSuccessful()) {
// success
return 'done';
} else {
return $response->getMessage();
}
}