ejemploys de scripts de pago
Esta página fue impresa el 20123年6月4日。Para . a . la versión实际,不好意思访问https://help.shopify.com/es/manual/checkout-settings/script-editor/examples/payment-gateway-scripts。
Los scripts de pago interactúan con pasarelas de pago, y pueden cambiar el nombre, la visiidad y la posición en pantalla de una pasarela de pago。这个ejecutan cadas que que to客户同意一个la página de mancitodos de pago en la panalla de pago。Los scripts de pago no interactúan con加速进程 Porque estos se muestran and los clients de de que lleguen和la pantalla de pago。
Shopify +
Shopify脚本通过la aplicación脚本编辑器están可免除的独奏para商家deShopify + 。La aplicación脚本编辑器ya no est一次性para su descarga desde La tienda de applicicaciones de Shopify。
El 13 de goosto de 2024, Shopify脚本se退休不兼容服务。存在迁移脚本Shopify功能 Antes de esta fecha。
Para usar las plantillas en esta página,创建一个新的脚本con una plantilla en blanco。
出来的:
面板面板面板面板面板面板面板面板面板面板面板面板面板面板面板Aplicaciones >脚本编辑器 。
Haz - clicCrear脚本 。
Haz - clicPasarelas de pago 。
Selecciona白大蕉 你的luego已经被激活了Crear脚本 。
恩拉seccióncódigo fuente de Ruby ,消除la línea de código predeterminada:输出。车=输入.车
复制脚本desdesesta página y pembrolo en la sección decódigo fuente de Ruby 。
Edita la sección deconfiguracion可个性化的 Del script para que funccione in the tienda。
按一下脚本。Para más información, consulta la sección可能是purar Shopify Scripts 。
despusams de la prueba:
Haz - clicGuardar borrador Para guard:联合国边境警卫
Haz - clic公众卫士 Para创建公共脚本。
Muestra pasarelas a clients específicos
Usa este script para mostrar una opción de pasarela específica solo a clients específicamente礼仪。
穷ejemploo,博物馆una pasarela específica独奏一个客户与礼仪贵宾
, la pasarela est眼科诊断和护理客户。
# ================================ 可定制的设置 ================================ # ================================================================ #显示客户标签的网关 # 如果我们有一个匹配的客户,输入的网关将是 #显示,其他所有将被隐藏。否则,输入的 # 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
Oculta pasarelas a客户específicos
Usa este script para ocultar una pasarela específica a clients específicamente etiquetados。
穷ejemploo, culta una pasarela específica一个客户与礼仪HIDE_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
oculus pasarelas de pago para productos específicos
美国este script para ocultar una pasarela específica cuando se agregan artículos específicos al carrito。
可怜的ejemploo, oculta una pasarela específica我的客户戴着宽边帽。
# ================================ 可定制的设置 ================================ # ================================================================ #隐藏产品网关 # 如果购物车中包含任何匹配的商品,则输入的网关 #是隐藏的。 # # - '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
Mostrar pasarelas de pago para países específicos
Usa este script para mostrar una pasarela específica solo cuando un client estest realizando un pedido desde un país específico。
穷ejemplo, pasarela博物馆específica独立于客户estest realizando和pedido desede canada (la pasarela est culta para direcciones de cualquier otro país)。
背板
El uso de国家
y decountry_code
Es específico para el equivalent de la región, Es decir país/región。
# ================================ 可定制的设置 ================================ # ================================================================ 显示国家/地区的网关 # #如果收货地址国家匹配任何输入的 # countries,将显示输入的网关,以及所有其他网关 #将被隐藏。否则,输入的网关将被隐藏。 # # - 'country_code_match_type'决定是否查找购物车 # country是否匹配输入的选择器。可以是: # -“: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 # #如果收货地址国家匹配任何输入的 # countries,将显示输入的网关,以及所有其他网关 #将被隐藏。否则,输入的网关将被隐藏。 # ================================================================ 类 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
oculus pasarelas para países específicos
美国este script para ocultar pasarelas de pagago en países específicos。
穷ejemploo, culta una pasarela específica a clients de canada 。
背板
El uso de国家
y decountry_code
Es específico para el equivalent de la región, Es decir país/región。
# ================================ 可定制的设置 ================================ # ================================================================ #隐藏国家的网关 # #如果收货地址国家匹配任何输入的 # countries,输入的网关将被隐藏。 # # - 'country_code_match_type'决定是否查找购物车 # country是否匹配输入的选择器。可以是: # -“: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
Mostrar pasarelas por gasto
美国este脚本para mostrar una pasarela específica是一个客户端实现了一个gasto superior一个cierto monto。
穷ejemploo, musea una pasarela específica si unclient gasta $1000到más, si no, ocúltala。
# ================================ 可定制的设置 ================================ # ================================================================ #显示花费阈值的网关 # #如果购物车总数大于或等于输入的 # threshold,显示输入的网关。 # # -“threshold”是客户必须消费的金额 # order查看输入的网关 # - '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
真是太棒了
美国estestscript para bibiar / orden predeterminado de las pasarelas de pasago que经常为客户提供服务。
# ================================ 可定制的设置 ================================ # ================================================================ #重新排序网关 # #您希望网关显示的顺序 # ================================================================ 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