diff --git a/src/Plugin/Commerce/PaymentGateway/Micropay.php b/src/Plugin/Commerce/PaymentGateway/Micropay.php
index f2a6898..33dcc94 100644
--- a/src/Plugin/Commerce/PaymentGateway/Micropay.php
+++ b/src/Plugin/Commerce/PaymentGateway/Micropay.php
@@ -27,9 +27,10 @@ class Micropay extends QRCodePaymentMode2 {
    * @param string $order_id
    * @param string $auth_code
    * @param Price $total_amount
+   * @param string $device_info
    * @return \Drupal\Core\Entity\EntityInterface
    */
-  public function capture($order_id, $auth_code, Price $total_amount) {
+  public function capture($order_id, $auth_code, Price $total_amount, $device_info = '') {
     if (!$this->gateway_lib) {
       $this->loadGatewayConfig();
     }
@@ -37,12 +38,13 @@ class Micropay extends QRCodePaymentMode2 {
     $gateway = $this->gateway_lib;
 
     $attributes = [
-      'auth_code' => $auth_code,
-      'body'             => \Drupal::config('system.site')->get('name') . $this->t(' Order: ') . $order_id,
-      // 'detail'           => 'order_items in certain format',
-      'out_trade_no'     => $order_id,
-      'total_fee' => $total_amount->getNumber() * 100, // WeChat Pay use Integer for its price
-      'fee_type' => $total_amount->getCurrencyCode(),
+      'auth_code'    => $auth_code,
+      'body'         => \Drupal::config('system.site')->get('name') . $this->t(' Order: ') . $order_id,
+      // 'detail'     => 'order_items in certain format',
+      'out_trade_no' => $order_id,
+      'device_info'  => $device_info,
+      'total_fee'    => $total_amount->getNumber() * 100, // WeChat Pay use Integer for its price
+      'fee_type'     => $total_amount->getCurrencyCode(),
     ];
 
     $wechat_order = new Order($attributes);
diff --git a/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php b/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php
index cb499e6..dceebf4 100644
--- a/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php
+++ b/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php
@@ -390,9 +390,10 @@ class QRCodePaymentMode2 extends OffsitePaymentGatewayBase implements SupportsRe
    * @param string $order_id order id
    * @param \Drupal\commerce_price\Price $total_amount
    * @param string $notify_url
+   * @param string $device_info
    * @return \Drupal\commerce_payment\Entity\Payment
    */
-  public function requestQRCode($order_id, Price $total_amount, $notify_url = NULL) {
+  public function requestQRCode($order_id, Price $total_amount, $notify_url = NULL, $device_info = '') {
     if (!$this->gateway_lib) {
       $this->loadGatewayConfig();
     }
@@ -422,13 +423,14 @@ class QRCodePaymentMode2 extends OffsitePaymentGatewayBase implements SupportsRe
     }
 
     $attributes = [
-      'trade_type'       => 'NATIVE', // JSAPI，NATIVE，APP...
-      'body'             => \Drupal::config('system.site')->get('name') . $this->t(' Order: ') . $order_id,
-      // 'detail'           => 'order_items in certain format',
-      'out_trade_no'     => $order_id . '', // Make sure this id is a string
-      'total_fee' => $total_amount->getNumber() * 100, // WeChat Pay use Integer for its price
-      'fee_type' => $total_amount->getCurrencyCode(),
-      'notify_url' => $notify_url
+      'trade_type'   => 'NATIVE', // JSAPI，NATIVE，APP...
+      'body'         => \Drupal::config('system.site')->get('name') . $this->t(' Order: ') . $order_id,
+//      'detail'       => 'order_items in certain format',
+      'device_info'  => $device_info,
+      'out_trade_no' => $order_id . '', // Make sure this id is a string
+      'total_fee'    => $total_amount->getNumber() * 100, // WeChat Pay use Integer for its price
+      'fee_type'     => $total_amount->getCurrencyCode(),
+      'notify_url'   => $notify_url
     ];
     /** @var \EasyWeChat\Payment\Order $wechat_order */
     $wechat_order = new Order($attributes);
diff --git a/src/PluginForm/MicropayForm.php b/src/PluginForm/MicropayForm.php
index 5440f4f..a0597d2 100644
--- a/src/PluginForm/MicropayForm.php
+++ b/src/PluginForm/MicropayForm.php
@@ -41,8 +41,12 @@ class MicropayForm extends PaymentOffsiteForm {
     /** @var \Drupal\commerce_payment\Plugin\Commerce\PaymentGateway\OffsitePaymentGatewayInterface $payment_gateway_plugin */
     $payment_gateway_plugin = $payment->getPaymentGateway()->getPlugin();
 
+    $order    = $payment->getOrder();
+    $price    = $payment->getAmount();
+    $store_id = $order->getStoreId();
+
     try {
-      $payment_gateway_plugin->capture((string) $payment->getOrderId(), $values['barcode'], $payment->getAmount());
+      $payment_gateway_plugin->capture((string) $order->id(), $values['barcode'], $price, $store_id);
 
     } catch (\Exception $e) {
       // Payment is not successful
diff --git a/src/PluginForm/QRCodePaymentForm.php b/src/PluginForm/QRCodePaymentForm.php
index a6c5710..07ca5a9 100644
--- a/src/PluginForm/QRCodePaymentForm.php
+++ b/src/PluginForm/QRCodePaymentForm.php
@@ -22,12 +22,13 @@ class QRCodePaymentForm extends BasePaymentOffsiteForm {
     /** @var \Drupal\commerce_payment\Plugin\Commerce\PaymentGateway\OffsitePaymentGatewayInterface $payment_gateway_plugin */
     $payment_gateway_plugin = $payment->getPaymentGateway()->getPlugin();
 
-    $order = $payment->getOrder();
-    $price = $payment->getAmount();
+    $order    = $payment->getOrder();
+    $price    = $payment->getAmount();
+    $store_id = $order->getStoreId();
 
     try {
       /** @var \Drupal\commerce_payment\Entity\Payment $payment_entity */
-      $payment_entity = $payment_gateway_plugin->requestQRCode($order->id(), $price);
+      $payment_entity = $payment_gateway_plugin->requestQRCode((string) $order->id(), $price, null, $store_id);
 
       $barcode = new Barcode();
       // generate a barcode
