3

オムニペイには完全なドキュメントがありません! 承認後にキャプチャを実行しようとしていますが、正しく取得できないようです。

<?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();
            }
        }
4

1 に答える 1