diff --git a/src/Plugin/Commerce/PaymentGateway/Micropay.php b/src/Plugin/Commerce/PaymentGateway/Micropay.php
index 842b60d..e7e9b0b 100644
--- a/src/Plugin/Commerce/PaymentGateway/Micropay.php
+++ b/src/Plugin/Commerce/PaymentGateway/Micropay.php
@@ -43,13 +43,17 @@ class Micropay extends QRCodePaymentMode2 {
       '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);
 
+    // EasyWeChat not allow write device_info param to Order attributes
+    // link: https://github.com/overtrue/wechat/issues/1030
+    $merchant = $gateway->getMerchant();
+    $merchant->set('device_info', $device_info);
+
     try {
       /** @var \EasyWeChat\Support\Collection $result */
       $response = $gateway->pay($wechat_order);
diff --git a/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php b/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php
index 3539a37..945d9bf 100644
--- a/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php
+++ b/src/Plugin/Commerce/PaymentGateway/QRCodePaymentMode2.php
@@ -420,7 +420,6 @@ class QRCodePaymentMode2 extends OffsitePaymentGatewayBase implements SupportsRe
       '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(),
@@ -429,6 +428,11 @@ class QRCodePaymentMode2 extends OffsitePaymentGatewayBase implements SupportsRe
     /** @var \EasyWeChat\Payment\Order $wechat_order */
     $wechat_order = new Order($attributes);
 
+    // EasyWeChat not allow write device_info param to Order attributes
+    // link: https://github.com/overtrue/wechat/issues/1030
+    $merchant = $gateway->getMerchant();
+    $merchant->set('device_info', $device_info);
+
     try {
       /** @var \EasyWeChat\Support\Collection $response */
       $response = $gateway->prepare($wechat_order);
