Voorbeelden van betalingscripts
Deze pagina是2023年4月15日。Ga voor de huidige versie naar https://help.shopify.com/nl/manual/checkout-settings/script-editor/examples/payment-gateway-scripts。
betalingscripts hebben intermet betalingsgateway en kunnen de titel, zichtbaarheid en weergave van een gateway wijzigen。Deze脚本worden uitgeverd wanneer je klant bij de checkout de pagina遇见verzendmethoden opent。贝塔灵脚本hebben geen toegang totversnelde签出 , omdat versnelde结帐worden weergegeeven voor je klanten voordat ze de结帐pagina bereiken。
Shopify +
Shopify-scripts en de Script Editor-app zijn alleen beschikbaar voor merchants met eenShopify + -abonnement。De Script Editor-app kan niet langer worden gedownload在Shopify App Store。
Vanaf 13 augustus 2024 zijn Shopify-scripts afgeschreven en worden ze niet meer ondersteund。Migreer je bestaande脚本vóór deze datum naarShopify功能 。
Maak even nieuw script met even leg template om de templates op deze pagina te gebruiken。
Stappen:
Ga in het Shopify-beheercentrum naar应用程序 >脚本编辑器 。
公里op脚本aanmaken 。
公里opBetalingsgateways 。
应征入伍者Leeg模板 En klik daarna行动脚本aanmaken 。
我在这里Ruby-broncode 标准代码凝胶。输出。车=输入.车
Kopieer甚至脚本van deze pagina en plak het in het gedeelteRuby-broncode 。
Bewerk het gedeelteAanpasbare instellingen Van het脚本zodat het在je winkel kan werken。
测试脚本RaadpleegShopify-scripts testen en debuggen 。
Na het testen:
公里op概念opslaan Om een net -gepubliceerd概念van het脚本op te slaan,的
公里op保存并发布 Om het script te maken en te publiceren
大门甚至可以在特定的地方
Gebruik dit script om alleen en specifieke gateway-optie weer te geeven voor specifiek getagde klanten。
Toon bijvoorbeeld alleen een bepalalde gateway aan klanten met de tag贵宾
。“门户”是“verorgen voor andere klanten”
# ================================ 可定制的设置 ================================ # ================================================================ #显示客户标签的网关 # 如果我们有一个匹配的客户,输入的网关将是 #显示,所有其他将被隐藏。否则,输入的 # gateway将被隐藏。 # # - 'customer_tag_match_type'决定我们是否寻找客户 #是否使用输入的标签进行标记。可以是: # - ':include'检查客户是否被标记 # - ':exclude'以确保客户没有被标记 # - 'customer_tags'是一个客户标签列表,用于触发 #活动 # - 'gateway_match_type'决定下面的字符串是否 #应该是完全匹配或部分匹配。可以是: # - ':exact'用于精确匹配 # - ':partial'表示部分匹配 # - 'gateway_names'是一个用于标识网关的字符串列表 # ================================================================ SHOW_GATEWAYS_FOR_CUSTOMER_TAG = [ { customer_tag_match_type:包括 , customer_tags: [ “customer_tag” , “another_tag” ], gateway_match_type:精确 , gateway_names: [ “网关” , “其他网关” ], }, ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # CustomerTagSelector # #查找所提供的客户是否有任何输入的标记。 # ================================================================ 类 CustomerTagSelector def 初始化 ( match_type , 标签 ) @comparator = match_type = = :包括 ? “什么?” : “没有吗?” @ tags = 标签 。 地图 { | 标签 | 标签 。 downcase 。 带 } 结束 def 比赛吗? ( 客户 ) customer_tags = 客户 。 标签 。 地图 { | 标签 | 标签 。 downcase 。 带 } ( @ tags & customer_tags ). 发送 ( @comparator ) 结束 结束 # ================================================================ # GatewayNameSelector # 查找所提供的网关名是否与 #输入的名称。 # ================================================================ 类 GatewayNameSelector def 初始化 ( match_type , gateway_names ) @comparator = match_type = = :确切 ? “= =” : “有吗?” @gateway_names = gateway_names 。 地图 { | 名字 | 名字 。 downcase 。 带 } 结束 def 比赛吗? ( payment_gateway ) @gateway_names 。 任何? { | 名字 | payment_gateway 。 名字 。 downcase 。 带 。 发送 ( @comparator , 名字 ) } 结束 结束 # ================================================================ # ShowGatewaysForCustomerTagCampaign # 如果客户有任何输入的标记,则输入的网关 根据输入的设置显示/隐藏 # ================================================================ 类 ShowGatewaysForCustomerTagCampaign def 初始化 ( 活动 ) @campaigns = 活动 结束 def 运行 ( 车 , payment_gateways ) @campaigns 。 每一个 做 | 运动 | customer_tag_selector = CustomerTagSelector 。 新 ( 运动 [ : customer_tag_match_type ], 运动 [ : customer_tags ], ) customer_match = 车 。 客户 。 nil ? ? 假 : customer_tag_selector 。 比赛吗? ( 车 。 客户 ) gateway_name_selector = GatewayNameSelector 。 新 ( 运动 [ : gateway_match_type ], 运动 [ : gateway_names ], ) payment_gateways 。 delete_if 做 | payment_gateway | gateway_name_selector 。 比赛吗? ( payment_gateway ) ! = customer_match 结束 结束 结束 结束 活动 = [ ShowGatewaysForCustomerTagCampaign 。 新 ( SHOW_GATEWAYS_FOR_CUSTOMER_TAG ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways
大门verbergen voor specifieke klanten
Gebruik dit script om een specifieke gateway voor specifiek getagde klanten te verbergen。
Verberg bijvoorbeeld een bepalalde gateway voor klanten met de tagHIDE_GATEWAY
。
# ================================ 可定制的设置 ================================ # ================================================================ #隐藏客户标签的网关 # 如果我们有一个匹配的客户,输入的网关将是 #隐藏。 # # - 'customer_tag_match_type'决定我们是否寻找客户 #是否使用输入的标签进行标记。可以是: # - ':include'检查客户是否被标记 # - ':exclude'以确保客户没有被标记 # - 'customer_tags'是一个客户标签列表,用于触发 #活动 # - 'gateway_match_type'决定下面的字符串是否 #应该是完全匹配或部分匹配。可以是: # - ':exact'用于精确匹配 # - ':partial'表示部分匹配 # - 'gateway_names'是一个用于标识网关的字符串列表 # ================================================================ HIDE_GATEWAYS_FOR_CUSTOMER_TAG = [ { customer_tag_match_type:包括 , customer_tags: [ “customer_tag” , “another_tag” ], gateway_match_type:精确 , gateway_names: [ “网关” , “其他网关” ], }, ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # CustomerTagSelector # #查找所提供的客户是否有任何输入的标记。 # ================================================================ 类 CustomerTagSelector def 初始化 ( match_type , 标签 ) @comparator = match_type = = :包括 ? “什么?” : “没有吗?” @ tags = 标签 。 地图 { | 标签 | 标签 。 downcase 。 带 } 结束 def 比赛吗? ( 客户 ) customer_tags = 客户 。 标签 。 地图 { | 标签 | 标签 。 downcase 。 带 } ( @ tags & customer_tags ). 发送 ( @comparator ) 结束 结束 # ================================================================ # GatewayNameSelector # 查找所提供的网关名是否与 #输入的名称。 # ================================================================ 类 GatewayNameSelector def 初始化 ( match_type , gateway_names ) @comparator = match_type = = :确切 ? “= =” : “有吗?” @gateway_names = gateway_names 。 地图 { | 名字 | 名字 。 downcase 。 带 } 结束 def 比赛吗? ( payment_gateway ) @gateway_names 。 任何? { | 名字 | payment_gateway 。 名字 。 downcase 。 带 。 发送 ( @comparator , 名字 ) } 结束 结束 # ================================================================ # HideGatewaysForCustomerTagCampaign # 如果我们有一个匹配的客户,输入的网关将是 #隐藏。 # ================================================================ 类 HideGatewaysForCustomerTagCampaign def 初始化 ( 活动 ) @campaigns = 活动 结束 def 运行 ( 车 , payment_gateways ) 返回 如果 车 。 客户 。 nil ? @campaigns 。 每一个 做 | 运动 | customer_tag_selector = CustomerTagSelector 。 新 ( 运动 [ : customer_tag_match_type ], 运动 [ : customer_tags ], ) 下一个 除非 customer_tag_selector 。 比赛吗? ( 车 。 客户 ) gateway_name_selector = GatewayNameSelector 。 新 ( 运动 [ : gateway_match_type ], 运动 [ : gateway_names ], ) payment_gateways 。 delete_if 做 | payment_gateway | gateway_name_selector 。 比赛吗? ( payment_gateway ) 结束 结束 结束 结束 活动 = [ HideGatewaysForCustomerTagCampaign 。 新 ( HIDE_GATEWAYS_FOR_CUSTOMER_TAG ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways
网关需要特定的产品
Gebruik dit script om een specifieke gateway te verbergen wanneer bepalalde artikelen aan de winkelwagen zijn toegevegd。
Verberg bijvoorbeeld even bepalalde gateway als de klant even hoed bestelt。
# ================================ 可定制的设置 ================================ # ================================================================ #隐藏产品的网关 # #如果购物车中包含任何匹配的物品,则输入的网关 #是隐藏的。 # # - 'product_selector_match_type'决定我们是否寻找 #与输入选择器匹配或不匹配的产品。可以 号是: # - ':include'检查产品是否匹配 # - ':exclude'以确保产品不匹配 # - 'product_selector_type'决定产品的合格程度 #将被识别。可以是: # - ':tag'按标签查找产品 # - ':type'按类型查找产品 # - ':vendor'按供应商查找产品 # - ':product_id'按ID查找产品 # - ':variant_id'通过变量ID查找产品 # - ':subscription'查找订阅产品 # - 'product_selectors'是一个字符串或数字的列表 #通过上述选择器类型识别产品 # - 'gateway_match_type'决定下面的字符串是否 #应该是完全匹配或部分匹配。可以是: # - ':exact'用于精确匹配 # - ':partial'表示部分匹配 # - 'gateway_names'是一个用于标识网关的字符串列表 # ================================================================ HIDE_GATEWAY_FOR_PRODUCT = [ { product_selector_match_type:包括 , product_selector_type: product_id , product_selectors: [ 1234567890987 , 1234567890986 ], gateway_match_type:精确 , gateway_names: [ “网关” , “其他网关” ], }, ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # ProductSelector # #根据输入的标准查找匹配的产品。 # ================================================================ 类 ProductSelector def 初始化 ( match_type , selector_type , 选择器 ) @match_type = match_type @comparator = match_type = = :包括 ? “什么?” : “没有吗?” @selector_type = selector_type @ selector = 选择器 结束 def 比赛吗? ( line_item ) 如果 自我 。 respond_to吗? ( @selector_type ) 自我 。 发送 ( @selector_type , line_item ) 其他的 提高 RuntimeError 。 新 ( “无效的产品选择器类型” ) 结束 结束 def 标签 ( line_item ) product_tags = line_item 。 变体 。 产品 。 标签 。 地图 { | 标签 | 标签 。 downcase 。 带 } @ selector = @ selector 。 地图 { | 选择器 | 选择器 。 downcase 。 带 } ( @ selector & product_tags ). 发送 ( @comparator ) 结束 def 类型 ( line_item ) @ selector = @ selector 。 地图 { | 选择器 | 选择器 。 downcase 。 带 } ( @match_type = = :包括 ) = = @ selector 。 包括什么? ( line_item 。 变体 。 产品 。 product_type 。 downcase 。 带 ) 结束 def 供应商 ( line_item ) @ selector = @ selector 。 地图 { | 选择器 | 选择器 。 downcase 。 带 } ( @match_type = = :包括 ) = = @ selector 。 包括什么? ( line_item 。 变体 。 产品 。 供应商 。 downcase 。 带 ) 结束 def product_id ( line_item ) ( @match_type = = :包括 ) = = @ selector 。 包括什么? ( line_item 。 变体 。 产品 。 id ) 结束 def variant_id ( line_item ) ( @match_type = = :包括 ) = = @ selector 。 包括什么? ( line_item 。 变体 。 id ) 结束 def 订阅 ( line_item ) ! line_item 。 selling_plan_id 。 nil ? 结束 结束 # ================================================================ # GatewayNameSelector # 查找所提供的网关名是否与 #输入的名称。 # ================================================================ 类 GatewayNameSelector def 初始化 ( match_type , gateway_names ) @comparator = match_type = = :确切 ? “= =” : “有吗?” @gateway_names = gateway_names 。 地图 { | 名字 | 名字 。 downcase 。 带 } 结束 def 比赛吗? ( payment_gateway ) @gateway_names 。 任何? { | 名字 | payment_gateway 。 名字 。 downcase 。 带 。 发送 ( @comparator , 名字 ) } 结束 结束 # ================================================================ # HideGatewayForProductCampaign # #如果购物车中包含任何匹配的物品,则输入的网关 #是隐藏的。 # ================================================================ 类 HideGatewayForProductCampaign def 初始化 ( 活动 ) @campaigns = 活动 结束 def 运行 ( 车 , payment_gateways ) @campaigns 。 每一个 做 | 运动 | product_selector = ProductSelector 。 新 ( 运动 [ : product_selector_match_type ], 运动 [ : product_selector_type ], 运动 [ : product_selectors ], ) 下一个 除非 车 。 line_items 。 任何? { | line_item | product_selector 。 比赛吗? ( line_item ) } gateway_name_selector = GatewayNameSelector 。 新 ( 运动 [ : gateway_match_type ], 运动 [ : gateway_names ], ) payment_gateways 。 delete_if 做 | payment_gateway | gateway_name_selector 。 比赛吗? ( payment_gateway ) 结束 结束 结束 结束 活动 = [ HideGatewayForProductCampaign 。 新 ( HIDE_GATEWAY_FOR_PRODUCT ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways
大门也有不同的方向
Gebruik dit脚本从alleen甚至特定的门户weer te geven wanneer甚至klant甚至特定的土地最好的。
Laat bijvoorbeeld alleen een bepalalde gateway zien als een klant een bestelling platst在加拿大。在平坦的土地上,大门是永恒的。
Opmerking
Het gebruik van国家
在country_code
具体是指van de regio, dus land/regio。
# ================================ 可定制的设置 ================================ # ================================================================ #显示国家的网关 # 如果收货地址国家与输入的任何国家相匹配 #国家,输入的网关(s)将显示,以及所有其他 #将被隐藏。否则,输入的网关将被隐藏。 # # - 'country_code_match_type'决定是否查找购物车 是否匹配输入的选择器。可以是: # - ':include'在列表中查找一个国家 # - ':exclude'以确保该国家不在列表中 # - 'country_codes'是一个2个字符的缩写列表 #适用国家 # - 'gateway_match_type'决定下面的字符串是否 #应该是完全匹配或部分匹配。可以是: # - ':exact'用于精确匹配 # - ':partial'表示部分匹配 # - 'gateway_names'是一个用于标识网关的字符串列表 # ================================================================ SHOW_GATEWAYS_FOR_COUNTRY = [ { country_code_match_type:包括 , country_code: [ “CA” ], gateway_match_type:精确 , gateway_names: [ “网关” , “其他网关” ], }, ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # CountrySelector # #查找所提供的国家代码是否与输入的国家代码匹配 #字符串。 # ================================================================ 类 CountrySelector def 初始化 ( match_type , 国家 ) @match_type = match_type @countries = 国家 。 地图 { | 国家 | 国家 。 upcase 。 带 } 结束 def 比赛吗? ( country_code ) ( @match_type = = :包括 ) = = @countries 。 包括什么? ( country_code 。 upcase 。 带 ) 结束 结束 # ================================================================ # GatewayNameSelector # 查找所提供的网关名是否与 #输入的名称。 # ================================================================ 类 GatewayNameSelector def 初始化 ( match_type , gateway_names ) @comparator = match_type = = :确切 ? “= =” : “有吗?” @gateway_names = gateway_names 。 地图 { | 名字 | 名字 。 downcase 。 带 } 结束 def 比赛吗? ( payment_gateway ) @gateway_names 。 任何? { | 名字 | payment_gateway 。 名字 。 downcase 。 带 。 发送 ( @comparator , 名字 ) } 结束 结束 # ================================================================ # ShowGatewaysForCountryCampaign # 如果收货地址国家与输入的任何国家相匹配 #国家,输入的网关(s)将显示,以及所有其他 #将被隐藏。否则,输入的网关将被隐藏。 # ================================================================ 类 ShowGatewaysForCountryCampaign def 初始化 ( 活动 ) @campaigns = 活动 结束 def 运行 ( 车 , payment_gateways ) 地址 = 车 。 shipping_address @campaigns 。 每一个 做 | 运动 | country_selector = CountrySelector 。 新 ( 运动 [ : country_code_match_type ], 运动 [ : country_code ], ) country_match = 地址 。 nil ? ? 假 : country_selector 。 比赛吗? ( 地址 。 country_code ) gateway_name_selector = GatewayNameSelector 。 新 ( 运动 [ : gateway_match_type ], 运动 [ : gateway_names ], ) payment_gateways 。 delete_if 做 | payment_gateway | gateway_name_selector 。 比赛吗? ( payment_gateway ) ! = country_match 结束 结束 结束 结束 活动 = [ ShowGatewaysForCountryCampaign 。 新 ( SHOW_GATEWAYS_FOR_COUNTRY ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways
大门,bepalalde landen verbergen
Gebruik dit脚本从betalingsgateway在具体的landen te verbergen。
加拿大的Verberg bijvoorbeeld een bepalalde gateway van klanten。
Opmerking
Het gebruik van国家
在country_code
具体是指van de regio, dus land/regio。
# ================================ 可定制的设置 ================================ # ================================================================ #隐藏国家的入口 # 如果收货地址国家与输入的任何国家相匹配 # countries,输入的网关将被隐藏。 # # - 'country_code_match_type'决定是否查找购物车 是否匹配输入的选择器。可以是: # - ':include'在列表中查找一个国家 # - ':exclude'以确保该国家不在列表中 # - 'country_codes'是一个2个字符的缩写列表 #适用国家 # - 'gateway_match_type'决定下面的字符串是否 #应该是完全匹配或部分匹配。可以是: # - ':exact'用于精确匹配 # - ':partial'表示部分匹配 # - 'gateway_names'是一个用于标识网关的字符串列表 # ================================================================ HIDE_GATEWAYS_FOR_COUNTRY = [ { country_code_match_type:包括 , country_code: [ “CA” ], gateway_match_type:精确 , gateway_names: [ “网关” , “其他网关” ], }, ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # CountrySelector # #查找所提供的国家代码是否与输入的国家代码匹配 #字符串。 # ================================================================ 类 CountrySelector def 初始化 ( match_type , 国家 ) @match_type = match_type @countries = 国家 。 地图 { | 国家 | 国家 。 upcase 。 带 } 结束 def 比赛吗? ( country_code ) ( @match_type = = :包括 ) = = @countries 。 包括什么? ( country_code 。 upcase 。 带 ) 结束 结束 # ================================================================ # GatewayNameSelector # 查找所提供的网关名是否与 #输入的名称。 # ================================================================ 类 GatewayNameSelector def 初始化 ( match_type , gateway_names ) @comparator = match_type = = :确切 ? “= =” : “有吗?” @gateway_names = gateway_names 。 地图 { | 名字 | 名字 。 downcase 。 带 } 结束 def 比赛吗? ( payment_gateway ) @gateway_names 。 任何? { | 名字 | payment_gateway 。 名字 。 downcase 。 带 。 发送 ( @comparator , 名字 ) } 结束 结束 # ================================================================ # HideGatewaysForCountryCampaign # 如果收货地址国家与输入的任何国家相匹配 # countries,输入的网关将被隐藏。 # ================================================================ 类 HideGatewaysForCountryCampaign def 初始化 ( 活动 ) @campaigns = 活动 结束 def 运行 ( 车 , payment_gateways ) 地址 = 车 。 shipping_address 返回 如果 地址 。 nil ? @campaigns 。 每一个 做 | 运动 | country_selector = CountrySelector 。 新 ( 运动 [ : country_code_match_type ], 运动 [ : country_code ], ) 下一个 除非 country_selector 。 比赛吗? ( 地址 。 country_code ) gateway_name_selector = GatewayNameSelector 。 新 ( 运动 [ : gateway_match_type ], 运动 [ : gateway_names ], ) payment_gateways 。 delete_if 做 | payment_gateway | gateway_name_selector 。 比赛吗? ( payment_gateway ) 结束 结束 结束 结束 活动 = [ HideGatewaysForCountryCampaign 。 新 ( HIDE_GATEWAYS_FOR_COUNTRY ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways
网关通过uitgeven实现
Gebruik dit脚本甚至特定网关weer te geeven als甚至klant meer dan bepalald bedrag besteedt。
Als even klant bijvoorbeeld 1000美元的meer uitgeeft, word even bepalalde gateway weergegeven, anders wordt deze verorgen。
# ================================ 可定制的设置 ================================ # ================================================================ #显示开销阈值的网关 # #如果购物车总数大于或等于输入的 # threshold,则显示输入的网关。 # # -“threshold”是客户必须消费的金额 #命令查看输入的网关 # - 'gateway_match_type'决定下面的字符串是否 #应该是完全匹配或部分匹配。可以是: # - ':exact'用于精确匹配 # - ':partial'表示部分匹配 # - 'gateway_names'是一个用于标识网关的字符串列表 # ================================================================ SHOW_GATEWAYS_FOR_THRESHOLD = [ { 阈值: 500 , gateway_match_type:精确 , gateway_names: [ “网关” , “其他网关” ], }, ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # GatewayNameSelector # 查找所提供的网关名是否与 #输入的名称。 # ================================================================ 类 GatewayNameSelector def 初始化 ( match_type , gateway_names ) @comparator = match_type = = :确切 ? “= =” : “有吗?” @gateway_names = gateway_names 。 地图 { | 名字 | 名字 。 downcase 。 带 } 结束 def 比赛吗? ( payment_gateway ) @gateway_names 。 任何? { | 名字 | payment_gateway 。 名字 。 downcase 。 带 。 发送 ( @comparator , 名字 ) } 结束 结束 # ================================================================ # ShowGatewaysForThresholdCampaign # #如果购物车总数大于或等于输入的 # threshold,则显示输入的网关。 # ================================================================ 类 ShowGatewaysForThresholdCampaign def 初始化 ( 活动 ) @campaigns = 活动 结束 def 运行 ( 车 , payment_gateways ) @campaigns 。 每一个 做 | 运动 | 下一个 除非 车 。 subtotal_price < ( 钱 。 新 ( 分: One hundred. ) * 运动 [ :阈值 ]) gateway_name_selector = GatewayNameSelector 。 新 ( 运动 [ : gateway_match_type ], 运动 [ : gateway_names ], ) payment_gateways 。 delete_if 做 | payment_gateway | gateway_name_selector 。 比赛吗? ( payment_gateway ) 结束 结束 结束 结束 活动 = [ ShowGatewaysForThresholdCampaign 。 新 ( SHOW_GATEWAYS_FOR_THRESHOLD ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways
通往光明的大门
Gebruik dit script om de standaardvolgorde van de betalingsgateways die aan je klanten worden aangeboden te wijzigen。
# ================================ 可定制的设置 ================================ # ================================================================ #重新排序网关 # #您希望网关显示的顺序 # ================================================================ DESIRED_GATEWAY_ORDER = [ “支付网关1” , “支付网关2” , “支付网关3” , ] # ================================ 脚本代码(不要编辑 ) ================================ # ================================================================ # ReorderGatewaysCampaign # #将网关重新排序到输入的顺序 # ================================================================ 类 ReorderGatewaysCampaign def 初始化 ( desired_order ) @desired_order = desired_order 。 地图 { | 项 | 项 。 downcase 。 带 } 结束 def 运行 ( 车 , payment_gateways ) payment_gateways 。 sort_by ! { | payment_gateway | @desired_order 。 指数 ( payment_gateway 。 名字 。 downcase 。 带 ) || 浮动 :: ∞ } 结束 结束 活动 = [ ReorderGatewaysCampaign 。 新 ( DESIRED_GATEWAY_ORDER ), ] 活动 。 每一个 做 | 运动 | 运动 。 运行 ( 输入 。 车 , 输入 。 payment_gateways ) 结束 输出 。 payment_gateways = 输入 。 payment_gateways