0

Opencart で最初の支払いゲートウェイを開発しようとしていますが、支払いが成功した後、または支払いがキャンセルされた後の注文の処理に問題があります。

これは、confirm 関数と update 関数の構文が見つからないためです。

私はこれをどこかで見つけました:

$this->model_checkout_order->update(
        $order_id,
        $order_status,
        "",
        true
    );

しかし、私は order_id 変数しか持っていませんが、他の変数についてはわかりません。どこに設定するか、何を含める必要がありますか?

これが私のコードです(コールバック関数):

public function callback() {
if (isset($this->request->post['merchant_refID'])) {
  $order_id = $this->request->post['merchant_refID'];
} else {
  die('Illegal Access');
}

$this->load->model('checkout/order');
$order_info = $this->model_checkout_order->getOrder($order_id);

if ($order_info) {
  $data = array_merge($this->request->post,$this->request->get);

  //I am using mail function to verify transaction and it is working fine
  if ($data['status'] == '0') {
     mail('a@a.com','success','Success' ,'From: b@b.com');
   }else if ($data['status'] == '-22') {
     mail('a@a.com','failed','amount low' ,'From: b@b.com');
  }else if ($data['status'] == '-202') {
     mail('a@a.com','failed','bank low' ,'From: b@b.com');
  }else if ($data['status'] == '-300') {
     mail('a@a.com','failed','bank high' ,'From: b@b.com');
  }else if ($data['status'] == '-305') {
     mail('a@a.com','failed','failed' ,'From: b@b.com');
  }else if ($data['status'] == '-999') {
     mail('a@a.com','failed','other' ,'From: b@b.com');
  }
}
}

注文を更新または確認するにはどうすればよいですか? これに関するガイドはありますか?私は本当に混乱しています!

4

2 に答える 2

0

私はなんとか作業を理解していたので、同じものを投稿しています。間違っていたらすみませんが、私の知る限りでは、

新しい注文を確認してさらに処理するには、confirm() 関数を使用する必要があります。たとえば、注文して支払いを済ませた場合です。ここでは、注文を送信して購入者にメールを送信するために、confirm() 関数を使用する必要があります。confirm() 関数の例:

$this->model_checkout_order->confirm($order_id, 2, $message, true);

これにより、$order_id のステータスが 2 にマークされます。つまり、(私の場合) 処理中です。データベースで他のステータス コードを確認できます (テーブル: order_status)。

一方、 update() 関数は、注文のステータスを更新するために使用されます (これについてはよくわかりません)。次を使用してステータスコードを変更できるように:

    $this->model_checkout_order->update($order_id, 10, $message, true);

ここでは、注文ステータスを 10 に変更します。つまり、(私の場合) 失敗しました。しかし、私の知る限り、これを新しい注文に使用すると、confirm() とは異なり、ユーザーにメールは送信されません。

$message は明らかに、追加したいメッセージです。

于 2015-08-25T16:48:30.263 に答える